我如何find使用jQuery元素的绝对位置?
有没有办法find一个元素的绝对位置,即相对于窗口的开始,使用jQuery?
.offset()
将返回一个元素的偏移位置作为一个简单的对象,例如:
var position = $(element).offset(); // position = { left: 42, top: 567 }
您可以使用此返回值将其他元素放置在相同的位置:
$(anotherElement).css(position)
注意$(element).offset()
告诉你元素相对于文档的位置 。 这在大多数情况下效果很好,但是在position:fixed
的情况下可以得到意想不到的结果。
如果您的文档比视口更长,并且已经朝文档的底部垂直滚动,则position:fixed
元素的offset()
值将比预期值大滚动的数量。
如果您正在查找与视口 (窗口) 相关的值,而不是位置上的文档:fixed元素,则可以从固定元素的offset().top
值中减去文档的scrollTop()
值。 例如: $("#el").offset().top - $(document).scrollTop()
如果position:fixed
元素的偏移父母是文档 ,则需要改为读取parseInt($.css('top'))
。