我正在使用带有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));
});
答案 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 ) );
}
);