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