2012-08-22 233 views
1

我试图在我的页面上实现无限滚动,当滚动回顶端时,如何将事件搞糟,而不是在页面底部触发。有谁知道什么可能触发这个?jQuery - 无限滚动

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

我目前使用上面的代码,它在jsfiddle工作得很好。我也试过的替代 -

if($(window).scrollTop() + $(window).height() == $(document).height()) 

注:我使用的是笨(虽然林不知道这会导致什么问题?)

如果你想看看我是什么意思你可以看看http://carllawl.kwebserv.info/recent的测试页面(只需向下滚动,然后返回查看我的意思)

+0

你可以尝试添加到您的脚本,然后让我们知道它说什么。 chk_val = $(document).height() - $(window).height();的console.log( “chk_val =”,chk_val); – TryHarder

+0

如果您使用的是Firefox,则需要使用萤火虫才能看到结果。 – TryHarder

+0

(使用铬)它总是返回 - chk_val = 0 – user1522379

回答

0

这段代码工作得非常好,当我将它粘贴到firebug控制台并且测试页目前未加载时。

+0

是的,我认为这是好的,不是知道为什么测试页面没有加载它似乎确定我和几个朋友。感谢确认它不是我的代码! – user1522379

0

使用本

$(window).scroll(function() { 
    if ($(window).scrollTop() <= $(document).height() - $(window).height() && $(window).scrollTop() >= $(document).height() - $(window).height() - 10) { 
    yourfunctionhere() 
    } 
}); 
+0

感谢您的答复,我想这是我收到的与上述相同的结果,你的代码! – user1522379

0

比方说,你已经用id #footer的页脚DIV:

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

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

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

$(document).scroll(function(e){ 
    if (element_in_scroll("#footer")) { 
    //Here you must do what you need to achieve the infinite scroll effect... 
}; 
}); 

此外,如果你想了解更多信息结帐这个如何在创造无限滚动jQuery的手册http://dumpk.com/2013/06/02/how-to-create-infinite-scroll-with-ajax-on-jquery/