同位素+ Wordpress - 在帖子加载后重新布局?

时间:2014-11-19 22:26:00

标签: php jquery wordpress jquery-isotope jquery-masonry

我在WordPress中使用带有砌体布局的Isotope,以及ImagesLoaded。每个帖子都是一个单独的同位素项目。所有这些似乎都运行良好,除非我在帖子中加载动态内容,例如推特小部件或嵌入式视频。在加载post / widget之前设置项的初始高度。一旦它满载,我需要同位素再次重新布局以适应新的高度。

有没有办法在所有帖子完全加载后再次调用布局功能?

这是我的同位素代码:

// init isotope
var $container = $('#cards');

$container.isotope({
    itemSelector: '.item',
    masonry: {
       columnWidth: '.grid-sizer',
       isFitWidth: true
    }
});


// layout Isotope again after all images have loaded
$container.imagesLoaded( function() {
  $container.isotope('layout');
});  


// infinite scroll
$container.infinitescroll({
        navSelector  : '.pagination',   
        nextSelector : '.pagination a', 
        itemSelector : '.item-scroll', 
        behavior: "twitter",
        loading: {
            finishedMsg: 'No more pages to load.'      
          }
        },     
        function ( newElements ) {
          var $newElems = jQuery( newElements ).hide(); // hide to begin with
          // ensure that images load before adding to masonry layout
          $newElems.imagesLoaded(function(){
            $newElems.fadeIn(); // fade in when ready
            $container.isotope( 'appended', $newElems );  
          });
        }    
      );

function onLayout() {
        $container.infinitescroll('scroll');
  }

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

试试这个:

 var $container = $('#cards');
$container.imagesLoaded( function() {
  // init isotope

$container.isotope({
itemSelector: '.item',
masonry: {
   columnWidth: '.grid-sizer',
   isFitWidth: true
}
});
});  


// infinite scroll
$container.infinitescroll({
    navSelector  : '.pagination',   
    nextSelector : '.pagination a', 
    itemSelector : '.item-scroll', 
    behavior: "twitter",
    loading: {
        finishedMsg: 'No more pages to load.'      
      }
    },     
    function ( newElements ) {
      var $newElems = jQuery( newElements ).hide(); // hide to begin with
      // ensure that images load before adding to masonry layout
      $newElems.imagesLoaded(function(){
        $newElems.fadeIn(); // fade in when ready
        $container.isotope( 'appended', $newElems ).isotope('layout');  
      });
    }    
  );

function onLayout() {
    $container.infinitescroll('scroll');
}