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