JS Infinite Scroll禁用自动加载?

时间:2014-12-19 15:04:12

标签: jquery masonry

我从这里使用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自动加载并要求用户单击一个按钮以恢复自动加载。

这样的事情可能吗?

1 个答案:

答案 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,对吧?

对我来说,就像你可以检测前两页加载然后使用该方法停止它来解除正常行为(第一个代码块),然后在某个事件(第二个代码块)上重新设置它