2013-06-22 23 views
0

我有一個函數,當我接近頁面底部時加載新項目。它的效果很好,唯一的問題是當新項目加載時,滾動位置一直回到頂部,這非常混亂,而不是我想要的。下面是函數:滾動位置保持最佳狀態,但我沒有告訴它

function loader(url) { 
    $.get(url, function(data) { 
     $newPosts = $(data).filter(function(){ 
      return this.id === 'posts'; 
     }).children(); 
     $newPosts.hide(); 
      $wall.masonry('destroy'); 
      $('#posts').append($newPosts); 
     $newPosts.each(function(){ 
      $(this).fadeIn('slow'); 
     }); 
      $wall.masonry({ 
       itemSelector: '.entry, .entry_photo', 
       isAnimated : false 
      }); 
    }).error(function(url) { 
     alert('error'); 
    }); 
}; 

Jsfiddle

因此,大家可以看到,它跳右後衛頂,看起來參差不齊。我怎樣才能防止呢?爲什麼會發生?

+1

在我看來,該鏈接的jsfiddle沒有顯示的問題。你能修好它嗎? –

+0

這jsfiddle顯示我的問題... –

回答

2

在我看來,在砌築調用destroy是這裏問題的根源。

使用appended方法

$wall 
    .append($newPosts) 
    .masonry('appended', $newPosts); 
    .masonry('layout'); 
+0

是'$ wall.masonry('added',$ newPosts);'這個技巧!謝謝! –

+0

@RyanSaxe仍然演示不顯示爲我:-D –

+0

你的意思是沒有問題,或者鏈接不工作? –

0

用這個腳本替換你的滾動功能,看看。

DEMO http://jsfiddle.net/yeyene/ajjaz/7/

$(window).scroll(function(){ 
    if ($('#posts').outerHeight() - $('body').scrollTop() - 420 <= 0) { 
     loader(site); 
     $('html, body').animate({ scrollTop: $(this).scrollTop() }, 'fast'); 
     page += 1; 
    }  
}); 
+0

這樣的作品,但不是像我想要的那樣乾淨平滑... –

+0

嘗試將動畫速度更改爲快速? $('html,body')。animate({scrollTop:$(this).scrollTop()},'fast'); – yeyene

+0

我試過了,我甚至嘗試將它改爲0,並且它仍然相當鋸齒 –

相關問題