2012-08-22 267 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/