我懷疑這是正確的行爲,但我想知道是否有任何事情可以做,以獲得元素的offsetTop的實際值。offsetTop顯示元素上的屬性:none始終爲0
想要的行爲是,當用戶點擊一個按鈕時,列表將被滾動,以便所選項目將位於頂部,這可以很好地工作,而元素是可見的,但它可以隱藏,我們希望這行爲即使在隱藏時也會發生,因此當用戶取消隱藏後,列表將滾動到所需的項目。
HTML
<div id='list-wrapper'>
<ul>
<li id='one'>One</li>
<li id='two'>Two</li>
<li id='three'>Three</li>
</ul>
</div>
CSS
.list-wrapper {
display: none;
position: relative;
overflow-y: scroll;
}
JS
let listElement: Element = document.getElementById('list-wrapper');
let li3: Element = document.getElementById('three');
listElement.scrollTop = li3.offsetTop;
的一種方式來解決這將是緩存滾動操作直到你顯示元素,如果元素被隱藏。 –