我有一个看起来像这样的jquery函数
$(window).scroll(function(){
if ($(window).scrollTop() == $(document).height() - $(window).height()){
my_funtion();
}
});
当用户向下滚动页面并点击底部时,my_function会执行。但是我希望在触及底部之前执行该功能。像500px或什么?如何才能做到这一点?我很抱歉,但我不是一个jquery天才,这似乎是必须动态计算的东西。如果有人可以帮助/指导我,那将非常感激。
最好的问候。
答案 0 :(得分:2)
我错过了什么或??? : - )
$(window).scroll(function(){
if ($(window).scrollTop() == $(document).height() - $(window).height() - 500){
my_funtion();
}
});
编辑(这可以在这里工作 - 如果它低于500px到底部,它会触发!)
(如果你有EQUAL然后他们需要准确地击中标记,这不确定他们是否进一步滚动)
$(window).scroll(function(){
var CurrentPost = $(window).scrollTop();
var DocHeight = $(document).height() - $(window).height();
if (CurrentPost > DocHeight-500){
alert('there!');
}
});
答案 1 :(得分:2)
我也在考虑Marco的解决方案,但无法在jsfiddle上运行。这是另一种方式:
$(window).scroll(function(){
if ($(document).scrollTop() / $(document).height() > 0.9){){
alert("you reached 90% of the document");
}
});
答案 2 :(得分:1)
$(window).scrollTop()
将为您提供在顶部滚动的像素$(document).height()
您网页的总高度$(window).height()
可见部分的高度(浏览器窗口的高度)现在知道参数会使这更像是一个数学问题
也许
$(window).scrollTop() >= $(document).height() - $(window).height() - 500
但是要小心并使用变量来检查你是否已经调用了你的函数,否则如果向下滚动一些像素就会再次调用它。
答案 3 :(得分:1)
试试这个:
jQuery(window).scroll(function () {
var height = jQuery(document).height() - jQuery(window).height();
if(height <= (jQuery(window).scrollTop() + 40)){
your_function();
}
});