当前位置:  开发笔记 > 编程语言 > 正文

如何使用jQuery找到元素的绝对位置?

如何解决《如何使用jQuery找到元素的绝对位置?》经验,为你挑选了2个好方法。

有没有办法使用jQuery找到元素的绝对位置,即相对于窗口的开始?



1> Crescent Fre..:

.offset() 将元素的偏移位置作为简单对象返回,例如:

var position = $(element).offset(); // position = { left: 42, top: 567 }

您可以使用此返回值将其他元素定位在同一位置:

$(anotherElement).css(position)


我总是忘记这一个,当我谷歌时再次找到你的帖子:p
由于边界不同等原因,这似乎并不总是返回绝对位置.
我正在使用chrome而`offset()`没有返回正确的顶部坐标.它返回比文档中元素的顶部坐标多大约300个像素.为什么??
@Aren我总是忘记这个,每次都发现你的评论很有趣:)

2> Tom Auger..:

请注意,它会$(element).offset()告诉您元素相对于文档的位置.这在大多数情况下都很有效,但在这种情况下position:fixed你会得到意想不到的结果.

如果文档比视口长,并且您已垂直向文档底部滚动,则position:fixed元素的offset()将比滚动的数量大于预期值.

如果要查找相对于视口(窗口)的值,而不是位置:固定元素上的文档,则可以scrollTop()从固定元素的offset().top值中减去文档的值.例:$("#el").offset().top - $(document).scrollTop()

如果position:fixed元素的偏移父元素是文档,则需要读取parseInt($.css('top')).


我正是在寻找这个!对于像我这样的菜鸟:要减去的值是`$(document).scrollTop()`
真棒!这应该是最好的答案!
推荐阅读
echo7111436
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有