首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >jQuery: position()和offset()之间的差异

jQuery: position()和offset()之间的差异
EN

Stack Overflow用户
提问于 2010-07-08 17:01:14
回答 3查看 99.3K关注 0票数 183

position()offset()有什么区别?我尝试在单击事件中执行以下操作:

代码语言:javascript
复制
console.info($(this).position(), $(this).offset());

它们看起来都是完全一样的。(单击的元素位于表格中的表格单元格内)

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-07-08 17:04:48

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

  • position返回相对于偏移量的{left: x, top: y}对象,parent
  • offset返回相对于文档的{left: x, top: y}对象。

显然,如果文档是偏置父级(通常是这种情况),它们将是相同的。offset parent是“位置最接近的包含元素”。

例如,使用以下文档:

代码语言:javascript
复制
 <div style="position: absolute; top: 200; left: 200;">
     <div id="sub"></div>
 </div>

那么$('#sub').offset()将是{left: 200, top: 200},但它的.position()将是{left: 0, top: 0}

票数 222
EN

Stack Overflow用户

发布于 2010-07-08 17:02:58

.offset()方法允许我们检索元素相对于文档的当前位置。与此形成对比的是.position(),后者检索相对于偏移父的当前位置。当在现有元素之上放置新元素以进行全局操作时(特别是在实现拖放操作时),.offset()更有用。

来源:http://api.jquery.com/offset/

票数 29
EN

Stack Overflow用户

发布于 2014-12-24 02:32:24

这两个函数都返回一个具有两个属性的普通对象: width和height。

偏移量()是指相对于文档的位置。

position()是指相对于其父元素的位置

但是当对象的css位置是“绝对”时,两个函数都将返回width=0 & height=0。

票数 -7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3202008

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档