我有一个带有“fixed”定位的 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"*/
在这里可以找到正在运行的代码,你可以看到,当你向下滚动时,固定div的位置值没有改变。
如果我没错的话,代码应该每次相对于文档的垂直位置发生变化时,在div上打印一个新值。但事实证明这并没有发生。
已解决:
问题由codef0rmer解决。我漏掉了跟踪滚动以刷新固定div位置的数值。我真是个笨蛋。所以最终代码按照他编写的方式正常工作:
$(function () {
var position = $("#fixed").offset();
$("#fixed").html(position.top);
$(window).scroll(function () {
var position = $("#fixed").offset();
$("#fixed").html(position.top);
});
})
在这里你可以看到正在运行的代码。
感谢大家,特别是codef0rmer。