简体   繁体   中英

Implementing infinite scroll

I'm trying to use infinite scroll but nothing is happening at all when I scroll down. This is how my current pagination looks:

<ul class="elgg-pagination">
   <li class="elgg-state-disabled"><span>« Previous</span></li>
   <li class="elgg-state-selected"><span>1</span></li>
   <li><a href="http://siteexample.com/casting?offset=10">2</a></li>
   <li><a href="http://siteexample.com/casting?offset=20">3</a></li>
   <li><a href="http://siteexample.com/casting?offset=30">4</a></li>
   <li><a href="http://siteexample.com/casting?offset=40">5</a></li>
   <li><a href="http://siteexample.com/casting?offset=50">6</a></li>
   <li><a href="http://siteexample.com/casting?offset=10">Next »</a></li>
</ul>

This is how my javascript looks:

$(window).scroll(function(){
var mostOfTheWayDown = ($(document).height() - $(window).height()) * 9 / 10;   
if ($(window).scrollTop() >= mostOfTheWayDown){
$container.infinitescroll({

  navSelector  : $('a',find('.elgg-state-selected')),    // selector for the paged     navigation 
  nextSelector : $('a',find('.elgg-state-selected').next('li').not('.elgg-state-disabled')),  // selector for the NEXT link (to page 2)
  itemSelector : '.item1',     // selector for all items you'll retrieve
  loading: {
  finishedMsg: 'No more pages to load.',
  img: 'http://i.imgur.com/6RMhx.gif'
}
  },
  // trigger Masonry as a callback
  function( newElements ) {
    // hide new items while they are loading
    var $newElems = $( newElements ).css({ opacity: 0 });
    // ensure that images load before adding to masonry layout
    $newElems.imagesLoaded(function(){
      // show elems now they're ready
      $newElems.animate({ opacity: 1 });
      $container.masonry( 'appended', $newElems, true ); 
     });
  }
);
  }

i would recommend this plugin , dont waste your time reinventing the wheel , enjoy the awesomeness of jQuery !

http://www.infinite-scroll.com/

// infinitescroll() is called on the element that surrounds 
// the items you will be loading more of
  $('#content').infinitescroll({

    navSelector  : "div.navigation",            
                   // selector for the paged navigation (it will be hidden)
    nextSelector : "div.navigation a:first",    
                   // selector for the NEXT link (to page 2)
    itemSelector : "#content div.post"          
                   // selector for all items you'll retrieve
  });

you may also try this :

http://airbnb.github.io/infinity/demo-on.html

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM