我从这里使用Infinite Scroll jQuery插件: http://www.infinite-scroll.com/infinite-scroll-jquery-plugin/
$grid.masonry({
itemSelector: $grid.data('items'),
});
if ($grid.data('infinite'))
{
$grid.infinitescroll({
navSelector: $grid.data('nav'),
nextSelector: $grid.data('next'),
itemSelector: ".articleItem"
}, function( newElements ) {
var $newElems = $( newElements );
$grid.masonry( 'appended', $newElems, true );
});
}
效果很好。但是,我想对它做一个小改动。现在,每当我向下滚动时,它都会自动加载下一页。我只希望它自动加载前两个额外的页面,然后,PAUSE自动加载并要求用户单击一个按钮以恢复自动加载。
这样的事情可能吗?
答案 0 :(得分:0)
从您关联的网站:
自定义触发,非自动。 Twitter风格在1.4中你可以触发 随意加载下一页内容。你首先解开 默认行为。然后每当你触发下一次拉动 像..
// unbind normal behavior. needs to occur after normal infinite scroll
setup. $(window).unbind('.infscr'); // call this whenever you want to
retrieve the next page of content // likely this would go in a click
handler of some sort $(document).trigger('retrieve.infscr'); Demo of
the triggered infinite scroll functionality.
它是如何工作的? .load()中有一个鲜为人知的功能 允许您指定所需html的CSS选择器的方法 包括。 jQuery将加载到任何本地URL,然后解析html和 只获取您使用选择器定义的元素。这允许 对于一些非常有趣的狗屎:客户端转换(一个紫色 包括);当你和当地人合作时,有些人真的很糟糕 php proxy。
这真是代码的核心:
// load all post divs from page 2 into an off-DOM div $('
').load('/page/2/ #content div.post',function(){
$(this).appendTo('#content'); // once they're loaded, append them to our content area });
所以它基本上利用了load() 方法的核心。它基本上是在抓你现有的页面 结构,这意味着您不需要编写任何自定义后端内容的代码 启用此功能! Booyah,对吧?
对我来说,就像你可以检测前两页加载然后使用该方法停止它来解除正常行为(第一个代码块),然后在某个事件(第二个代码块)上重新设置它