Javascript 如何使用jQuery查找元素的绝对位置?
是否有一种方法可以使用jQuery查找元素的绝对位置,即相对于窗口开始的位置?将以简单对象的形式返回元素的偏移位置,例如:Javascript 如何使用jQuery查找元素的绝对位置?,javascript,jquery,Javascript,Jquery,是否有一种方法可以使用jQuery查找元素的绝对位置,即相对于窗口开始的位置?将以简单对象的形式返回元素的偏移位置,例如: var position = $(element).offset(); // position = { left: 42, top: 567 } 可以使用此返回值将其他图元放置在同一位置: $(anotherElement).css(position) 请注意,$(element).offset()告诉您元素相对于文档的位置。这在大多数情况下都非常有效,但是在位置:fi
var position = $(element).offset(); // position = { left: 42, top: 567 }
可以使用此返回值将其他图元放置在同一位置:
$(anotherElement).css(position)
请注意,$(element).offset()告诉您元素相对于文档的位置。这在大多数情况下都非常有效,但是在位置:fixed
的情况下,您可能会得到意外的结果
如果您的文档比视口长,并且您已向文档底部垂直滚动,则您的位置:fixed
元素的offset()
值将大于您滚动的预期值
如果要查找相对于视口(窗口)的值,而不是位置:固定元素上的文档,则可以从固定元素的offset().top
值中减去文档的scrollTop()
值。示例:$(“#el”).offset().top-$(document.scrollTop()
如果position:fixed
元素的偏移父元素是文档,那么您需要阅读parseInt($.css('top'))
。我总是忘记这一个,在我搜索时再次找到您的帖子:p由于边框等方面的差异,这似乎并不总是返回绝对位置。我正在使用chrome和offset()
不返回正确的顶部坐标。它返回的值比文档中元素的顶部坐标多300像素。为什么?chrome、FF和IE给出了不同的结果:(@我总是忘记这一条,每次都觉得你的评论很有趣:)我一直在寻找这个!对于像我这样的noob:要减去的值是$(document).scrollTop()
太棒了!这应该是最好的答案!