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

时间:2009-03-25 20:36:52

标签: javascript jquery

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

2 个答案:

答案 0 :(得分:622)

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

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

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

$(anotherElement).css(position)

答案 1 :(得分:185)

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

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

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

如果position:fixed元素的偏移父项是文档,则您希望改为阅读parseInt($.css('top'))