如何使用Javascript / jQuery确定我们是否位于页面底部

时间:2010-12-20 10:08:33

标签: javascript jquery

jQuery中没有任何名为scrollBottom()的内容,因此我无法$(window).scrollBottom()==0

希望标题本身的问题清楚。任何帮助将不胜感激。我最感兴趣的是IE7 +,FF3.5 +(Chrome等奖金!)

谢谢!

3 个答案:

答案 0 :(得分:2)

您可以使用此功能检查元素是否可见(例如页面底部的元素):

function isScrolledIntoView(elem)
{
    var docViewTop = $(window).scrollTop();
    var docViewBottom = docViewTop + $(window).height();

    var elemTop = $(elem).offset().top;
    var elemBottom = elemTop + $(elem).height();

    return ((elemBottom >= docViewTop) && (elemTop <= docViewBottom));
}

我用它实现了无休止的滚动效果(比如在facebook中)。

你可以每次检查,用户正在滚动窗口:

function checkAndLoad(){
    if(isScrolledIntoView($('#footer'))){
        triggerSomething(); // 
    }
}
$(document).ready(function(){
    checkAndLoad();
    $(window).scroll(function(){
        checkAndLoad();
    });
});

答案 1 :(得分:2)

&lt; ironic&gt;使用javascript。&lt; / ironic&gt;

浏览器对此的支持是一个混合包。非IE可以使用window.pageYOffset,使用IE时,您必须使用document.body.scrollTopdocument.documentElement.scrollTop,具体取决于浏览器版本和兼容性模式。

你可能不得不对结果进行一些不同程度的数学操作 - 我无法访问多个浏览器来测试工作(我知道),我无法回想起这些工作的细节。< / p>

答案 2 :(得分:2)

检查是否有效

http://jsfiddle.net/sandeepan_nits/3Ys35/2/

我对e.pageY$(document).height()进行了比较,但是小提琴示例并不适用于所有浏览器,并且存在偏移问题。如果我设置了1的偏移量,它在ff中工作正常。

如果没有其他方法可以完美运行,您可以根据浏览器设置不同的偏移量(IE可能需要分开,其他可能需要分开)或者用范围检查替换相等条件(if(e.pageY == ($(document).height() - offset)))(if((e.pageY < ($(document).height() + upperLimit)) && (e.pageY > ($(document).height() + lowerLimit))))如果可以按照您的要求确定。