是否有一种方法找到一个元素的绝对位置,即相对于窗口的开始,使用jQuery?
.offset()将返回一个元素的偏移位置作为一个简单对象,例如:
.offset()
var position = $(element).offset(); // position = { left: 42, top: 567 }
你可以使用这个返回值来定位其他元素在同一位置:
$(anotherElement).css(position)
注意,$(element).offset()告诉你元素相对于文档的位置。这在大多数情况下工作得很好,但在position:fixed的情况下,你可以得到意想不到的结果。
$(element).offset()
position:fixed
如果你的文档是比视口长,并且你已经垂直滚动到文档的底部,那么你的position:fixed元素的offset()值将大于就是你所滚动的期望值。
offset()
如果你正在寻找一个值相对于视口 (window),而不是位置:fixed元素上的文档,你可以从固定元素的offset().top值中减去文档的scrollTop()值。例如:$("#el").offset().top - $(document).scrollTop()
offset().top
scrollTop()
$("#el").offset().top - $(document).scrollTop()
如果position:fixed元素的偏移父元素是文档,则应该读取parseInt($.css('top'))。
parseInt($.css('top'))
如果元素不可见,$(element).offset();和$(element).position();将0返回给top和left,而不是元素的实值。
$(element).offset();
$(element).position();
0
top
left
我必须使用
parseInt($(element).css("top")) parseInt($(element).css("left"))
返回所需的信息。 元素有position: absolute;.
position: absolute;