含义$(window).scrollTop()== $(document).height() - $(window).height()

时间:2013-03-28 19:31:55

标签: javascript jquery html

以下代码用于检测用户是否已滚动到页面底部并且有效。

if($(window).scrollTop() == $(document).height() - $(window).height()){
//do something
}

问题:

我不明白为什么从文档的高度减去窗口的高度,然后将其与滚动高度进行比较以确定是否已到达页面的底部。为什么不简单

if($(window).scrollTop() == $(document).height()){
//do something
}

if($(window).scrollTop() ==  $(window).height()){
//do something
}

3 个答案:

答案 0 :(得分:13)

这是因为$(window).scrollTop()返回页面顶部的位置,$(document).height()返回页面底部的位置。因此,您需要减去窗口的高度以获得要比较的位置,因为如果您完全滚动到底部,这将为您提供页面顶部的位置。

答案 1 :(得分:3)

$(window).scrollTop()是窗口的 top 相对于文档的位置。在我正在查看的页面上,如果我滚动到最底部,那就是1385$(document).height()是整个页面的高度(1991对我而言)。 $(window).height()是窗口(视口)的高度(606对我来说)。这意味着视口顶部的位置加上窗口的高度是视口的 bottom 的位置。 1385 + 606 = 1991

答案 2 :(得分:0)

scrollTop值永远不会高于文档高度值。这意味着您滚动浏览文档,使其全部在窗口之外。

scrollTop与窗口高度进行比较只意味着您向下滚动了一个屏幕,而不是向文档的底部滚动。

从文档高度减去窗口高度,当窗口底部位于文档底部时,会为scrollTop提供值。