.position()和.offset()之间的区别和一个有趣的观察?

时间:2013-08-08 05:09:21

标签: jquery jquery-ui

问题:.offset()和.position()有什么区别?

我读了一些关于这方面的文档,但我仍然不清楚这两者之间的真正区别。我会请求一个简单的解释。

我的观察:

我写了一个javascript代码,我把它放在网页(.aspx)本身。 javascript基本上是设置模态弹出窗口的位置。在那段代码中,我用.position()来获取div的位置,我将放置模态弹出窗口。现在,这是扭曲 - 当我将javascript代码移动到单独的js文件中时,.position()根本没有正常工作,而是使用.offset()并且它工作正常。

我会请求解释一下吗?

1 个答案:

答案 0 :(得分:7)

这取决于元素所处的上下文。位置返回相对于偏移父项的位置,而offset相对于文档相同。显然,如果文档是偏移父项(通常是这种情况),则这些将是相同的。

如果你有这样的布局,那么:

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

然后sub的偏移量为200:200,但其位置为0:0。

希望它有意义。