日常开发中,我们经常需要获取页面元素上的各种相对距离、绝对距离,其中获取一个div
距离页面(body)顶部的绝对距离比较复杂,这里记录一下。
function absoluteOffsetTop (el) {
var result = 0;
while (el && el.tagName.toLowerCase() !== 'body') {
result += el.offsetTop;
el = el.offsetParent;
}
return result;
}
上面代码中的函数,能够实现上述功能。我们直到DOM中offsetTop
这个属性能够获取元素相对父元素的顶部偏移,上面代码能一层层迭代计算所有的父子元素,加到一起就是相对整个页面的顶部偏移了。