jQuery - 在窗口滚动90%时运行脚本

时间:2015-04-05 00:12:43

标签: jquery

我发现了一个很好的脚本,当用户滚动页面时会加载页面内容。本文的网址:CLICK HERE

我对此脚本有一个问题 - 当用户以100%滚动页面时(滚动位于底部时),它会运行。我希望在滚动显示在页面的90%时启动此脚本。

这是原始代码:

if($(window).scrollTop() + $(window).height() == $(document).height())  //user scrolled to bottom of the page?

我尝试过这样:

    var percent = 90;
    window_scrolled = ((percent/$(document).height())*100);
    if($(window).scrollTop() + $(window).height() <= window_scrolled)  //user scrolled to bottom of the page?

但它不起作用。为什么?我的剧本中的问题在哪里?

2 个答案:

答案 0 :(得分:3)

以下是完整代码:

var percent = 90;
var window_scrolled;

$(window).scroll(function() {
    window_scrolled = ($(document).height()/100)*90;

    if($(window).scrollTop() + $(window).height() >= window_scrolled) {
        alert("scrolled to bottom");
    }
});

首先,你做的数学错了。如果我们说文档高度为2000px,则代码将返回4.5而不是1800,因此:

((percent/$(document).height())*100)

变为:

(($(document).height()/100)*percent)

而且,这个:

if($(window).scrollTop() + $(window).height() <= window_scrolled)

成为这个:

if($(window).scrollTop() + $(window).height() => window_scrolled)

答案 1 :(得分:1)

在第二段代码中,window_scrolled计算不正确,不能达到文档高度的90%。您应该在计算0.9 / height时计算0.9 * height

在我看来,与window_scrolled的比较是向后的,应该是>=而不是<=

我想你想要这个:

var percent = 90;
var window_scrolled = (percent * $(document).height()) / 100;

if ($(window).scrollTop() + $(window).height() >= window_scrolled) {
    // at least part of the last 10% of the document is visible
}