本文主要介绍offsetleft、offsetTop、offsetParent的相关信息。文章通过示例代码非常详细,对你的学习或工作有一定的参考价值。有需要的朋友下面和边肖一起学习。
Ele.offsetParent返回Ele元素最近的父元素,定位(相对,绝对)。如果没有父元素或者没有找到父元素,则返回值是body元素。
ele.offsetLeft和ele.offsetTop取值问题,分多种情况:
如果ele是body的直接子元素,则返回值是ele到body左侧或顶部的距离。
如果ele不是body的直接子元素,定位父元素时(相对,绝对),每个浏览器的返回值都是父元素左边的ele或者Yes。
离顶部的距离(唯一不同的是chrome不算边框,IE和IE,firefox都算)
如果ele不是body的直接子元素,并且没有定位父元素,则ele元素与body之间的距离由每个浏览器直接返回。
从上面可以看出,offsetLeft和offsetTop返回的值是ele到offsetParent的距离。offsetParent是什么样的,取决于ele的父元素是否定位(相对,绝对)。
应用:
当你想得到一个元素到网页左侧的距离时,要考虑offsetParent的定位问题。不能简单的通过ele.offsetLeft/Top,得到而是必须通过循环累加得到正确的值(chrome的结果和IE、Firefox不一样,相差1px,因为chrome没有把边框考虑进去)。这是代码。
(温馨提示:代码中的this.left和this.top可以用arguments.callee代替,但根据ECMAScript 5规范不建议使用。在严格模型下已经禁用了,因为arguments是一个比较大的对象,消耗了很多资源。)
var getOffset={
左:函数(对象){
return obj . offset left(obj . offset parent?this . left(obj . offset parent):0);
},
top:函数(){
return obj . offsettop(obj . offset parent?this . top(obj . offset parent):0);
}
}
关于offsetleft、offsetTop和offsetParent的这篇文章就到这里了。有关offsetleft、offsetTop和offsetParent的更多信息,请搜索我们以前的文章或继续浏览下面的相关文章。希望大家以后能多多支持我们!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。