同位素和无限滚动手动触发

时间:2012-09-13 14:54:54

标签: jquery-isotope infinite-scroll

我正在使用带有Infinite Scroll插件的Isotope插件。使用默认设置Infinite Scroll会自动触发加载新元素,但是,我宁愿使用“加载更多图像”按钮。

我只缺少一小段代码,这些代码将从无限卷轴中获取新元素,我可以传递给同位素INSERT函数。请在下面的代码中查看我的评论:

// initialize infinite scroll
$container.infinitescroll({
    navSelector  : '#paging',    // selector for the paged navigation 
    nextSelector : '#paging a',  // selector for the NEXT link (to page 2)
    itemSelector : '.col',     // selector for all items you'll retrieve
    loading: {
        msgText: 'Loading...',
        finishedMsg: Loaded all!',
             }
    } // <-- NOTE that we do not use callback function here!
    );


$(window).unbind('.infscr'); 

$('#paging a').click(function(){

// NEED CODE HERE TO GET NEW ELEMENTS FROM INFINITE SCROLL AND PASS THOSE ELEMENTS TO $container.isotope('insert', $(newElements)); 

}); 

1 个答案:

答案 0 :(得分:6)

无限滚动插件实际上提供"manual-trigger"-behavior来完成您所追求的目标。

manual-trigger.js之后加入jquery.infinitescroll.js,通过在调用插件时传递behavior: 'twitter'告诉无限滚动使用该行为,然后调用Isotope作为回调,如Isotope's demo for Infinite Scroll中所示:

$container.infinitescroll({
  navSelector  : '#paging',
  nextSelector : '#paging a',
  itemSelector : '.col',
  behavior: 'twitter',
  loading: {
      msgText: 'Loading...',
      finishedMsg: 'Loaded all!'
    }
  },
  // call Isotope as a callback
  function( newElements ) {
    $container.isotope( 'appended', $( newElements ) ); 
  }
);