为了账号安全,请及时绑定邮箱和手机立即绑定

obj = obj.offsetParent;是什么意思?

obj = obj.offsetParent;是什么意思?

ibeautiful 2018-09-12 09:18:35
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的祖先}


查看完整回答
反对 回复 2018-10-27
  • 1 回答
  • 0 关注
  • 810 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信