2012-06-08 24 views
0

我試圖建立其顯示在一個網格視圖圖像的Web應用程序。我已經實現了一個所謂的無限滾動功能,它的效果很好。問題是我已經添加了一個500像素的緩衝區,以便新圖像的加載應該在到達頁面結束之前開始,但是這個緩衝區沒有被遵守。在觸發之前,我必須滾動到絕對底部。我能做什麼?無盡的滾動緩衝區不兌現

我使用此解決方案:http://www.hawkee.com/snippet/9445/

這是我的滾動碼:

$(window).scroll (function() { 

if ($(window).scrollTop() >= $(document).height() - $(window).height() - 500) { 

    if (!self.loading) { 

    if (self.stop) { return; } 

    if (!self.pause) { self.append(); } 

    } 

    } 

}); 

回答

0

什麼版本的jQuery您使用的是?我最近剛剛實現了你正在描述的內容,並且它完美地工作。您可能想嘗試查看$(document).offset()['top']以查看您的body元素是否向上移動。

也有可能所有if()語句都會降低瀏覽器的速度,並且會降低事件率scroll()。如果這種情況發生,您可能會在觸發事件之前深入滾動緩衝區。

提示,以加快這:

  • 複雜的比較之前將您的簡單/二進制檢查。這樣一來,如果他們返回false,你有沒有浪費時間計算什麼
  • >更換>=運營商節省一些(可能是微不足道的)的處理能力。

如果以下情況不起作用,那麼它是您的jQuery版本或其他一些代碼行。

$(window).scroll(function(e){ 
    if(!self.loading && !self.stop && !self.pause && ($(window).scrollTop() + $(window).height()) > $(document).offset()['top'] + $(document).height() - 500){ 
    self.append(); 
    } 
}) 

乾杯,

邁克