小编典典

jQuery:位置()和偏移量()之间的区别

all

position()和 和有什么不一样offset()?我尝试在点击事件中执行以下操作:

console.info($(this).position(), $(this).offset());

而且它们似乎返回完全相同…(单击的元素位于表格中的表格单元格内)


阅读 119

收藏
2022-08-01

共1个答案

小编典典

它们是否相同取决于上下文。

  • position返回 相对于偏移父{left: x, top: y}对象的对象 __

  • offset返回一个 相对于文档{left: x, top: y}的对象。 __

显然,如果文档是偏移父级(通常是这种情况),这些将是相同的。偏移父级是“最近定位的包含元素” 。

例如,使用此文档:

 <div style="position: absolute; top: 200; left: 200;">
     <div id="sub"></div>
 </div>

然后$('#sub').offset() 将是{left: 200, top: 200},但它.position()会是{left: 0, top: 0}

2022-08-01