使用jquery获取固定div的位置

问题描述 投票:15回答:4

我有一个位置为“固定”的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。

jquery html position fixed
4个回答
14
投票
您可以使用.offset()获取相对于文档的元素的当前坐标,而.position()获取相对于其偏移父元素的元素的当前坐标。

4
投票
[.offset()为您提供相对于整个文档的坐标。

。offset()方法允许我们检索当前位置相对于文档的元素。将此与.position()进行对比,它检索相对于偏移父级的当前位置。将新元素放置在现有元素之上以进行全局操作时操作(尤其是用于实现拖放操作),.offset()更有用。

。offset()返回一个包含属性top和left的对象。

注意:jQuery不支持获取隐藏的偏移量坐标元素或占边界,边距或填充设置身体元素。


0
投票
除非刷新页面,并且滚动条在初始化时位于其他位置。

0
投票
($("div").offset().top - $(document).scrollTop())
© www.soinside.com 2019 - 2024. All rights reserved.