如何获得偏移()相对于父母在jQuery?

这给了我从主窗口左边缘的一些元素的位置:

$('#bar').offset().left; 

如果这个元素位于其他元素的内部,并且我希望#bar相对于#foo(它是父元素)的位置,我怎么能得到它?

 <style> #foo { width: 200px; margin: 0 auto; } #foo #bar { width: 50px; margin: 0 auto; } </style> <div id="foo"> <span id="bar"></span> </div> 

我看到有一个叫做offsetParent()的函数,但是在控制台login的时候,它看起来并没有像这个函数有任何叫做leftx属性。 所以不知道是否可以用来得到我所需要的。

所以在我上面的例子中,偏移量应该是距父级边缘大约125px,而不是主窗口边缘的数千个像素。

使用position()方法。

 $('#bar').position().left; 

很简单:获取元素的偏移量,并减去父元素的偏移量。

 var elem = $("#bar"); var offset = elem.offset().left - elem.parent().offset().left; 

在相对于其父母的div中的位置:

在我的情况下,我想本地化“行”行为div,但当滚动更改,偏移也改变了,位置也改变了,所以我结束了使用

element.get(0).offsetTop

element.offset()。top或者position()对于相对位置来说不是最优的。

 offsetLeft = $('#bar').position().left; offsetTop = $('#bar').position().top;