jQuery:位置()和偏移()之间的区别
position()
和offset()
之间有什么区别? 我尝试在点击事件中执行以下操作:
console.info($(this).position(), $(this).offset());
他们似乎返回完全一样的…(被点击的元素是在一个表格单元格中)
这取决于元素在什么上下文中position
返回相对于偏移父级的位置,并且offset
相对于文档是相同的 。 很明显,如果文件是抵消的父母,这往往是这样的,这些将是相同的。
如果你有这样的布局,但是:
<div style="position: absolute; top: 200; left: 200;"> <div id="sub"></div> </div>
那么sub的offset
是200:200,但是它的position
是0:0。
.offset()方法允许我们检索元素相对于文档的当前位置。 将它与.position()进行比较 ,它将检索相对于偏移父级的当前位置 。 当为了全局操作(特别是为了实现拖放)在现有的元素上放置新的元素时,.offset()是更有用的。
资料来源: http : //api.jquery.com/offset/
这两个函数都返回一个具有两个属性的普通对象:宽度和高度。
offset()是指相对于文档的位置。
position()是指相对于其父元素的位置
但是当对象的css位置是“绝对”时,这两个函数都会返回width = 0和height = 0