我是jQuery的新手,正在尝试做一些滚动工作。通过我的研究,我遇到了scrollTop()和offset()作为用于此目的的工具。我正在运行一个测试,其中按一下按钮将提示div的offset()。top的值。当我滚动一点并按下按钮时,该值会改变。我的印象是此值应保持不变,因为滚动时从div到文档顶部的距离不会改变。有人可以解释为什么会这样吗?

最佳答案

如果要测量的元素在可滚动容器中,则可以,top可以更改,因为考虑了容器的滚动。 top是从文档顶部到元素的可见距离。如果元素具有滚动的容器,而您更改了滚动,则距离会改变。

考虑:

<div style="height: 300px; overflow: scroll">
  <p>x</p>
  <!-- lots and lots more of those -->
  <p id="target">click me</p>
</div>


如果滚动包含的div,则从文档顶部到#target顶部的可视距离会改变。

Live Example | Live Source

关于jquery - 应该offset()。top永远改变,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17797766/

10-11 22:05
查看更多