我试图获得前一个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元素在控制台。 –
好吧,那么如何获得文档根目录的偏移量? –