2012-04-05 153 views
3

我該如何做到這一點,以便默認情況下,頁面上顯示6個div元素,並且當用戶滾動到頁面底部時,還會加載六個div元素?jQuery滾動顯示隱藏內容

如果你看到這個example,它有多個div。我最初只需要展示其中的6個,每當用戶到達頁面的底部時,我就需要再加載6個,直到你'用完'div。

到目前爲止,我嘗試過試驗jQuery無限滾動插件,但它們不適用於我的情況,因爲實際上我擁有的元素數量非常有限!

這怎麼能用jQuery來完成?提前致謝!

編輯

我認爲一個可以在div的其餘設置爲隱藏(除了第6),並觸發加載六點多到達頁面底部時的功能。

+0

你應該這樣做。觸發一個事件,當用戶到達底部並且在這個事件中,下一個div被加載。 – 2012-04-05 22:03:09

回答

1

您應該能夠使用類似以下內容:

jQuery(window).scroll(function() { 
    var loadHeight = jQuery(document).height() - jQuery(window).height(); 
    if(haveDivsToLoad && jQuery(window).scrollTop() >= loadHeight) { 
     // fire your load function here 
    } 
}); 

您可能需要使用loadHeight發揮,使其工作,讓您滿意。

編輯:我添加了haveDivsToLoad到支票。您應該將其設置爲全局(或閉包)變量,並將其設置爲truefalse,具體取決於是否有更多的div要加載。我創建了一個非常簡單的例子

1

讓我們假設你有div的陣列,每個與document.createElement("div")或類似的初始化。讓我們假設你有大量的他們。

var myArrayOfDivs = [];//see above 
var DivsAdded = 6;//as stated, 6 were already added - index 6 is the 7th element 
$(window).scroll(function() { 
    if ($(window).scrollTop() == $(document).height() - $(window).height()) { 
     for(int i = 0; i < 6; i++){ 
     if(myArrayOfDivs.length < DivsAdded) break; 
     $("#elementToAppendIn").append(myArrayOfDivs[DivsAdded++]); 
     } 
    } 
});