2013-09-22 85 views
0

最近我一直在用javascript掙扎一下,說實話:我並沒有真正瞭解它。tumblr用無限滾動定製photoset尺寸

my tumblr的職位有350像素的寬度,但由於的photosets使用I幀,我一直在尋找上的photosets不同的解決方案,發現這個代碼:

<script type="text/javascript"> 
//This will change the source address and display the correct size. 
    $newElems.imagesLoaded(function(){ 
      $(".photoset").each(function() { 
     var newSrc = $(this).attr("src").replace('500','350'); 
     $(this).attr("src", newSrc);  
    }); 
} 
//This will get the new size of the iframe and resize the iframe holder accordingly. 
$newElems.imagesLoaded(function(){ 
    $(function(){ 
    var iFrames = $('.photoset'); 
    function iResize() { 
     for (var i = 0, j = iFrames.length; i < j; i++) { 
      iFrames[i].style.height = iFrames[i].contentWindow.document.body.offsetHeight + 'px';} 
     } 

     if ($.browser.safari || $.browser.opera) { 
      iFrames.load(function(){ 
       setTimeout(iResize, 0); 
      }); 

      for (var i = 0, j = iFrames.length; i < j; i++) { 
       var iSource = iFrames[i].src; 
       iFrames[i].src = ''; 
       iFrames[i].src = iSource; 
      } 
     } else { 
      iFrames.load(function() { 
       this.style.height = this.contentWindow.document.body.offsetHeight + 'px'; 
      }); 
     } 
    }); 
} 

它的工作完美很好,當我去我的博客。
現在我們來看看我的問題:我的tumblr使用infinite scroll plugin。每當我向下滾動時,一大堆新圖片都會被加載,如果有一個photoset加載,它不會再調整大小,它將以默認大小顯示。

我一直在尋找一個年齡的解決方案,試圖調整JavaScript代碼,但我不明白任何它。我在網上發現的唯一的東西是this,這也沒有幫助,我真的希望有人能幫助我,我會感激不盡。

預先感謝您!

回答

0

懷着無限滾動需要適用於你現有的內容用於您的新內容的任何方法,在這種情況下,它iFrames().photosets。這可以通過無限滾動提供的回調來完成。

作爲每文檔(http://www.infinite-scroll.com/):

$('#content').infinitescroll({ 
    navSelector : "div.navigation", 
    nextSelector : "div.navigation a:first", 
    itemSelector : "#content div.post" }, 
    // callback 
    function($newElems){ 
    // Do stuff to new posts/$newElems 
    }); 
}); 

$newElems將包含任何新內容添加到DOM。現在只能直接在新內容上使用您的方法。

我建議重做iFrames()所以它接受一組元素,所以它可以被稱爲多個。