用jquery获取固定div的位置

前端之家收集整理的这篇文章主要介绍了用jquery获取固定div的位置前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个位置“固定”的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上打印一个新的值.但事实证明,这不会发生.

解决了:

这个问题已经在codef0rmer解决了.我错过了跟踪滚动来刷新固定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()可获取元素相对于其偏移父元素的当前坐标.

猜你在找的jQuery相关文章