RT obj = obj.offsetParent;是什么意思?以前很少用原生JS,都是用JQ获取某个元素距离页面顶部的偏移量,像这样:var offsetTop = $(obj).offset().top;然后在用原生js的时候需要获取多层嵌套的任意元素相于<body>顶部的偏移量要这样:function getTop(obj) { var iTop = 0; while (obj != window.document.body && obj != null) {
iTop += obj.offsetTop;
obj = obj.offsetParent;
} return iTop;
}这里的obj = obj.offsetParent没明白是什么意思,我去掉这句后,运行时,浏览器直接卡死了,说明while变成了无限循环。。那么就是obj变成了body或者null...有谁能详细解释一下这个函数和obj = obj.offsetParent么- -感谢!
1 回答
慕勒3428872
TA贡献1848条经验 获得超6个赞
获取父级
obj = obj.parent;
获取最近的祖先定位元素,也就是有position: absolute/fixed/relative的最近的一个祖先
obj = obj.offsetParent;
你那个是一直向上递推到 body(或者递推到根节点),累加offetTop,得出你的div 距离 body 的高度
var obj = document.getElementById('aa');var top = 0;while (obj != document.body && obj != null) //递推 obj 到 body 或者 空 为止,注意:到...为止{ top += obj.offsetTop; //obj获取 到有position祖先中的offsetTop值 obj = obj.offsetParent; //替换obj 为有position的祖先}
添加回答
举报
0/150
提交
取消