position()
和offset()
有什么区别?我尝试在单击事件中执行以下操作:
console.info($(this).position(), $(this).offset());
它们看起来都是完全一样的。(单击的元素位于表格中的表格单元格内)
发布于 2010-07-08 17:04:48
它们是否相同取决于上下文。
position
返回相对于偏移量的{left: x, top: y}
对象,parentoffset
返回相对于文档的{left: x, top: y}
对象。显然,如果文档是偏置父级(通常是这种情况),它们将是相同的。offset parent是“位置最接近的包含元素”。
例如,使用以下文档:
<div style="position: absolute; top: 200; left: 200;">
<div id="sub"></div>
</div>
那么$('#sub').offset()
将是{left: 200, top: 200}
,但它的.position()
将是{left: 0, top: 0}
。
发布于 2010-07-08 17:02:58
.offset()方法允许我们检索元素相对于文档的当前位置。与此形成对比的是.position(),后者检索相对于偏移父的当前位置。当在现有元素之上放置新元素以进行全局操作时(特别是在实现拖放操作时),.offset()更有用。
发布于 2014-12-24 02:32:24
这两个函数都返回一个具有两个属性的普通对象: width和height。
偏移量()是指相对于文档的位置。
position()是指相对于其父元素的位置
但是当对象的css位置是“绝对”时,两个函数都将返回width=0 & height=0。
https://stackoverflow.com/questions/3202008
复制相似问题