解决offsetTop为0(不是相对页面距离)
很多滑动判断元素是否位于屏幕可视范围的开发,像图片懒加载、进入动画等等,都涉及到获取位置距离,如果当前元素相对位置不是body,就不能正确判断距离。
演示代码
js
let par = item.offsetParent
let offsetTop = item.offsetTop
if (par.nodeName.toLowerCase() !== 'body') {
while (par) {
// 循环获取当前对象与body的高度
offsetTop += par.offsetTop
par = par.offsetParent
}
}
console.log(item, offsetTop, bottomToClientTop)