Answers:
.offset()
将作为简单对象返回元素的偏移位置,例如:
var position = $(element).offset(); // position = { left: 42, top: 567 }
您可以使用此返回值将其他元素放置在同一位置:
$(anotherElement).css(position)
offset()
并且不会返回正确的顶部坐标。相反,它返回的元素比文档中元素的顶部坐标多300像素。为什么??
请注意,它$(element).offset()
告诉您元素相对于文档的位置。在大多数情况下,这种方法效果很好,但在position:fixed
您可能会得到意想不到的结果。
如果文档的长度大于视口,并且已垂直滚动到文档的底部,则position:fixed
元素的offset()
值将大于预期值大滚动量。
如果要查找相对于视口(窗口)的值,而不是position:fixed元素上的文档,则可以scrollTop()
从固定元素的offset().top
值中减去文档的值。例:$("#el").offset().top - $(document).scrollTop()
如果position:fixed
元素的偏移父级是document,则您想阅读parseInt($.css('top'))
。
$(document).scrollTop()