2014-08-31 57 views
1

我有噸圖片的網站,所以我創建了AJAX的無限滾動的,也是我正在使用lazyload插件:http://www.appelsiini.net/projects/lazyload的jQuery插件lazyload應用效果上加載的圖像

我的問題是:我想用對於加載圖像的淡入效果,當我加載第一組圖像時,這很好,但是當我點擊「加載更多」時,淡入效果應用於那些已經可見的圖像和正在加載的圖像。 所以那些已經加載的圖像消失並且以淡入效果出現。

如何將淡入效果僅應用於當前正在加載的圖像?

這是我如何加載圖像:

$(".loadMore").click(function(){ 
     ... some validation 
     $.ajax({ 
      type: "POST", 
      url: "/loadMore/"+option+"/"+posts, 
      dataType: "json", 
      beforeSend: function(){ 
       t.html(lang.loading); 
      }, 
      success: function(data){ 
       t.html(lang.loadMore); 
       for(var i in data.posts.id){ 
        append(data.posts.id[i], data.posts.countComments[i], data.posts.image[i], data.posts.title[i], data.posts.link[i], data.posts.username[i], data.posts.date[i], data.posts.new_tab[i], data.posts.is_saved[i], false); 
       } 

       if(data.msg == "stop"){ 
        t.hide(); 
       } 
       $("img.lazy").lazyload({skip_invisible : false,failure_limit : 15, effect: "fadeIn"}); 
      } 

     }); 
    }); 

回答

1

嘗試將lazyload插件的AJAX成功方法之外。我相信你只需要設置一次。

$("img.lazy").lazyload({skip_invisible : false,failure_limit : 15, effect: "fadeIn"}).removeClass("lazy"); 

$(".loadMore").click(function(){ 
    ... some validation 
    $.ajax({ 
     ... 
      $("img.lazy").lazyload(
       { 
        skip_invisible : false, 
        failure_limit : 15, 
        effect: "fadeIn" 
        }).removeClass("lazy"); 
     ... 
    }); 
}); 
+0

我試過了,但是當我打電話lazyload只有一次,那麼那些被加載了阿賈克斯的圖像,不包含lazyload插件內,因此,我看不出這是裝有阿賈克斯 – Alen 2014-08-31 13:05:07

+0

圖片...或甚至更好 - http://stackoverflow.com/questions/10035985/binding-image-lazy-loading-to-new-images-inserted-after-ajax-request – no1spirite 2014-08-31 13:23:52

+0

編輯我的帖子,以反映來自http:// stackoverflow的答案.com/questions/10035985/binding-image-lazy-loading-to-new-images-inserted-after-ajax-request – no1spirite 2014-08-31 14:06:54