我发现了一个很好的脚本,当用户滚动页面时会加载页面内容。本文的网址: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?
但它不起作用。为什么?我的剧本中的问题在哪里?
答案 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
}