3

我使用以下脚本查看滚动条的位置

$(window).scroll(function(){
    jQuery('.scroll').html(document.body.scrollTop);
});

<div class="scroll"></div>

它只是输出div中滚动位置的px,但由于某种原因位置结果一直不同

就像,当我的浏览器(chrome)窗口最大化并且我向下滚动页面时它显示 1095px

当我没有最大化我的窗口并且我向下滚动它显示 1600px

当我在IE中打开它时,它显示1065px

所以由于某种原因,取决于窗口模式和浏览器类型,当我想要计算滚动条的位置时,我会得到不同的结果

我在这里做错了什么?

哦,我将结果与以下脚本一起使用。如果滚动位于某个位置,则显示 div(这就是想法),我正在搜索一个脚本,我可以在其中将功能设置为不同的位置,例如 500px 显示菜单 1000px 显示 div 1200px 显示脚注等

  if ($(window).scrollTop() >= 1000) {

    $('.showdiv').fadeIn(500);

  }

所以如果我不能正确计算位置,脚本有点不起作用:)

任何帮助将非常感激

4

1 回答 1

0

scrollTop 返回的值是元素距离渲染窗口顶部的距离。

   +-----------+     \
   |           |     |  - this distance.
+----------------- + /
|  |           |   |
|  |           |   |
|  +-----------+   |
|                  |
|                  |
|                  |
|                  |
+------------------+

如果您有一个 1000 像素高的 div,并且您的渲染窗口是 600 像素,那么您将在渲染边缘上方有 400 像素。如果你有一个 200px 的渲染窗口,那么在渲染边缘上方会有 800px。

您可以将其视为您必须向上滚动以显示元素顶部的距离。

如果您可以通过使窗口变小然后向下滚动页面〜100px来看到这种效果。

现在拉下窗口的底部。一旦滚动条到达页面底部,您就会注意到该值开始减小。

http://jsbin.com/ibefal/2

更多信息:http ://www.w3.org/TR/cssom-view/#dom-element-scrolltop

于 2013-06-06T22:14:47.693 回答