如何使jquery滚动功能更早生效?

时间:2011-09-09 09:28:58

标签: jquery scroll

我有一个看起来像这样的jquery函数

$(window).scroll(function(){
            if  ($(window).scrollTop() == $(document).height() - $(window).height()){
               my_funtion();
            }
        });

当用户向下滚动页面并点击底部时,my_function会执行。但是我希望在触及底部之前执行该功能。像500px或什么?如何才能做到这一点?我很抱歉,但我不是一个jquery天才,这似乎是必须动态计算的东西。如果有人可以帮助/指导我,那将非常感激。

最好的问候。

4 个答案:

答案 0 :(得分:2)

我错过了什么或??? : - )

$(window).scroll(function(){
            if  ($(window).scrollTop() == $(document).height() - $(window).height() - 500){
               my_funtion();
            }
        });

编辑(这可以在这里工作 - 如果它低于500px到底部,它会触发!)

(如果你有EQUAL然后他们需要准确地击中标记,这不确定他们是否进一步滚动)

示例:http://jsfiddle.net/4NBnj/

$(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();
    }
});