TK1*_*123 54 javascript jquery
这给了我主窗口左边缘的一些元素的位置:
$('#bar').offset().left;
Run Code Online (Sandbox Code Playgroud)
如果该元素位于其他元素内部并且我希望#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>
Run Code Online (Sandbox Code Playgroud)
我看到有一个函数被调用,offsetParent()但是当控制台记录时,它看起来似乎没有任何名为left或的属性x.所以不确定是否可以用它来获得我需要的东西.
所以在我上面的例子中,偏移量应该是距离父边缘大约125像素的距离,而不是主窗口边缘的几千个像素.
Sco*_*nce 87
使用position()方法.
$('#bar').position().left;
Run Code Online (Sandbox Code Playgroud)
Nie*_*sol 39
这很简单:获取元素的偏移量并减去其父元素的偏移量.
var elem = $("#bar");
var offset = elem.offset().left - elem.parent().offset().left;
Run Code Online (Sandbox Code Playgroud)
Mig*_*uel 10
div中相对于其父级的位置:
在我的情况下,当滚动更改时,计算的偏移也改变了,它不应该这样我最终使用纯javascript,无论如何更快...
element.get(0).offsetTop
像Left这样的其他变体也可能是element.get(0).offsetleft
结论
element.offset().top或position()对于位置相关情况不是最佳的.
| 归档时间: |
|
| 查看次数: |
76189 次 |
| 最近记录: |