繁体   English   中英

jQuery Infinite-Scroll不是无限过去的第2页

[英]Jquery Infinite-Scroll not infinite past page 2

我正在使用无限滚动的动态数据,但似乎无法通过第2页...

当页面最初加载时,我在URL中有一个偏移量,所以我们从0开始,所以,

test2.html?offset=0

这是加载日期的代码

$offset = $_GET['offset'];

$data = mysql_query("select * from list limit 30 offset $offset;",$db);         

echo '<div id="wall" class="transitions-enabled infinite-scroll clearfix">';

while ($databack33 = mysql_fetch_array($data)){

echo '<div class="block">';

echo '<a href=#><img src="'.$databack33[item_pic_url].'"></a>';

echo '</div>';

}

然后加载下一页我使用:

<nav id="page-nav">

<? $offset = $offset+30; ?>

<a href="test2.html?offset=<?=$offset?>"></a>

</nav>

这适用于第一页和第二页,但是尽管有更多数据,但它告诉我没有更多页面可以加载。

如果我查看页面源,那是正确的test2.html?offset=60

这是砌体/无限滚动

<script type="text/javascript">
$(function(){

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

$container.imagesLoaded(function(){
  $container.masonry({
    itemSelector: '.block',
    isAnimated: true,
    animationOptions: {
        duration: 750,
        easing: 'linear',
        queue: false
      }
  });
});

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

  });
</script>

为了使infinitescroll与“ offset =“分页一起使用,我执行了以下操作:

存储当前的“下一页” URL,并获取偏移值。

var nextSelector = '#page-nav a';
var origNextUrl = $(nextSelector).attr('href');
var offsetRegex = /(offset=)([0-9]+)/;
var offset = origNextUrl.match(offsetRegex)[2];

然后在infinitescroll中将一个函数分配给'path'选项,该函数接受页码并返回用于加载下一页的url。

$container.infinitescroll({
    // other options
    path: function(pageNum) {
        return origNextUrl.replace( offsetRegex, ("$1" + (offset * pageNum)) );
    },
    //callback
 });

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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