0
对于此问题,页面上有两个容器。每个设置为溢出:自动。显示在滚动容器上的位置绝对div的CSS
在上部容器(绿色)中,我们有一系列按钮。每个按钮切换一个弹出窗口(蓝色)的显示。无论上层容器的滚动位置如何,此蓝色容器都需要显示在下层容器的顶部(红色)。
我们通过将弹出窗口设置为绝对位置来获得部分路径,如本屏幕截图所示。
然而,当我们向下滚动,并进一步尝试点击这是以前隐藏它不是定位在按钮下方正确的按钮。
我想不需要按下按钮的Javascript计算的解决方案。我也不想使用固定位置,因为我希望弹出窗口保持在按钮下方,即使在页面大小调整时也是如此。
以下是重现此问题的代码。
function togglePopup(index) {
var element = document.getElementById('popup'+index);
if (element.style.display === 'none') {
element.style.display = '';
} else {
element.style.display = 'none';
}
}
.outerWrapper {
width: 200px;
height: 400px;
}
.upper {
height: 30%;
overflow:auto;
border: 1px solid green;
}
.lower {
height: 70%;
overflow: auto;
border: 1px solid red;
}
.row {
height: 70px;
}
.popup {
border: 1px solid blue;
background-color: white;
height: 100px;
width: 50px;
position:absolute;
}
<div class="outerWrapper">
<div class="upper">
<div class="row">
<button onclick="togglePopup(1)">test</button>
<div class="popup" id="popup1" style="display:none">
popup content
</div>
</div>
<div class="row">
<button onclick="togglePopup(2)">test</button>
<div class="popup" id="popup2" style="display:none">
popup content
</div>
</div>
<div class="row">
<button onclick="togglePopup(3)">test</button>
<div class="popup" id="popup3" style="display:none">
popup content
</div>
</div>
</div>
<div class="lower">
</div>
</div>
当我运行此代码,我看到弹出出现在左上角红色的盒子。我试图让它出现在按下按钮的下方。这实际上旨在与下拉菜单类似。 – Andrew