position()
和offset()
有什么区别?我try 在单击事件中执行以下操作:
console.info($(this).position(), $(this).offset());
而且他们似乎返回完全相同的...(单击的元素位于表中的表单元格内)
position()
和offset()
有什么区别?我try 在单击事件中执行以下操作:
console.info($(this).position(), $(this).offset());
而且他们似乎返回完全相同的...(单击的元素位于表中的表单元格内)
它们是否相同取决于上下文.
position
返回{left: x, top: y}
对象relative to the offset parent
offset
返回{left: x, top: y}
对象relative to the document.
显然,如果文档是抵销父级(通常是这种情况),则它们将是相同的.offset parent是"位置最接近的包含元素".
For example, with this document:
<div style="position: absolute; top: 200; left: 200;">
<div id="sub"></div>
</div>
那么$('#sub').offset()
将是{left: 200, top: 200}
,但它的.position()
将是{left: 0, top: 0}
.