我有一个位置为“固定”的div,并且我想在用户向下滚动页面时获取其位置值[[相对于整个文档。
因此,可以说我将div放在(x = 0,y = 0)上,然后用户向下滚动一点,现在相对于文档,div处于打开状态(X = 0,y = 300)。我想获取该信息,我想再次知道该div在每一时刻相对于整个文档(而不是相对于窗口或浏览器)的确切位置。我已经尝试了很多事情,但是似乎没有得到我想要的结果。
其中一个是此代码,
在固定div的情况下不起作用
:var position = $("#fixed").offset(); /*it gets the position of the div
"fixed" relative to the document*/
$("#fixed").html(position.top); /*it prints the obtained
value on the div "fixed"*/
Here you can find the running code,当向下滚动时,您会看到div的位置值。如果我没记错的话,代码每次更改相对于文档的垂直位置时,都应在div上打印一个新值。但事实证明,这不会发生。不更改
我没有跟踪滚动
刷新固定div位置的值。我是个白痴。所以最终代码的书写方式很好:$(function () {
var position = $("#fixed").offset();
$("#fixed").html(position.top);
$(window).scroll(function () {
var position = $("#fixed").offset();
$("#fixed").html(position.top);
});
})
和here you can see the running code.谢谢大家,特别感谢您使用codef0rmer。
.offset()
获取相对于文档的元素的当前坐标,而.position()
获取相对于其偏移父元素的元素的当前坐标。。offset()方法允许我们检索当前位置相对于文档的元素。将此与.position()进行对比,它检索相对于偏移父级的当前位置。将新元素放置在现有元素之上以进行全局操作时操作(尤其是用于实现拖放操作),.offset()更有用。。offset()返回一个包含属性top和left的对象。
注意:jQuery不支持获取隐藏的偏移量坐标元素或占边界,边距或填充设置身体元素。
($("div").offset().top - $(document).scrollTop())