使用jQuery和Masonry无限滚动获取动态内容

时间:2013-01-16 14:07:47

标签: jquery html jquery-masonry

我用jQuery Masonery实现无限滚动:

  

$(函数(){

var $container = $('#container');

$container.imagesLoaded(function(){
  $container.masonry({
    itemSelector: '.box',
    columnWidth: 100
  });
});

$container.infinitescroll({
  navSelector  : '#page-nav',    // selector for the paged navigation 
  nextSelector : '#page-nav a',  // selector for the NEXT link (to page 2)
  itemSelector : '.box',     // 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 ); 
    });
  }
);
   }); 

这是最简单的例子,但我想知道是否可以使用AJAX获取动态内容,而不仅仅是示例中显示的静态页面:

<nav id="page-nav">
  <a href="../pages/2.html"></a>
</nav>

感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

很简单。请按照以下步骤操作。

更改导航链接:

<nav id="page-nav">
  <a href="../pages/AjaxSource.php?no=2"></a>
</nav>

你的AjaxSource.php应该是这样的

<?php 
$pageNo= $_GET['no'];
?>

<?php if ($pageNo==2){?>

<div id="container" class="transitions-enabled clearfix">

    <div class="box photo col3">
      <a href="http://www.flickr.com/photos/nemoorange/5013039951/" title="Stanley by Dave DeSandro, on Flickr"><img src="http://farm5.static.flickr.com/4113/5013039951_3a47ccd509.jpg" alt="Stanley" /></a>
    </div>

    <div class="box photo col3">
      <a href="http://www.flickr.com/photos/nemoorange/5013039951/" title="Stanley by Dave DeSandro, on Flickr"><img src="http://farm5.static.flickr.com/4113/5013039951_3a47ccd509.jpg" alt="Stanley" /></a>
    </div>

</div>

<?php } ?>