jQuery的offset().top
它获取的值==你获取的元素的上边框距离html的顶部的值
JS的offsetTop
它获取的值==你获取的元素的上边框距离与它最近的父级元素(必须要脱离文档流的,relative没有用)的的顶部的值
原生:
方法一:
递归节点的offsetTop
function getElementToPageTop(el) {
if(el.parentElement) {
return this.getElementToPageTop(el.parentElement) + el.offsetTop
}
return el.offsetTop
}
方法二:
获取当前元素到可视区域顶端的距离
object.getBoundingClientRect();
再加上 document.documentElement.scrollTop
jquery:
$('xxx').offset().top;
:有图片的一定要图片加载完成后再计算