我試圖獲得前一個div偏移的頂偏了,我有當頁面獲取滾動是被運行下面的代碼:獲取項目從
var $elem = document.querySelector(selector);
var elemTop = $elem.offsetTop;
console.log(elemTop);
但是,當我把它的滾動總是將0
打印到控制檯,即使該元素低於摺疊。
我試圖獲得前一個div偏移的頂偏了,我有當頁面獲取滾動是被運行下面的代碼:獲取項目從
var $elem = document.querySelector(selector);
var elemTop = $elem.offsetTop;
console.log(elemTop);
但是,當我把它的滾動總是將0
打印到控制檯,即使該元素低於摺疊。
var elmTop = $elem.getBoundingClientRect().top + window.scrollY;
element.getBoundingClientRect()給出了視口內的位置,和window.scrollY給出到文檔的頂端從視口的頂部的距離。
這看起來像是在工作! –
另一種方法是使用element.offsetParent遍歷DOM,將每個節點的offsetTop添加到一起以獲取測量結果。這是比較複雜的,但可能比計算getBoundingClientRect的值更有效率,在執行Scroll上的任何操作時需要注意。 – Jack
該元素是否具有offsetParent? Docs說:'HTMLElement.offsetTop只讀屬性返回當前元素相對於offsetParent節點頂部的距離。' –
看起來像它,'$ elem.offsetParent',當我滾動時我得到一個html元素在控制檯。 –
好吧,那麼如何獲得文檔根目錄的偏移量? –