マンソンリーとカウチベースをデータベースとして無限スクロールを使用します。私の問題は、ページ 2 の後に tt が同じコンテンツをロードすることです。コード例を次に示します。
ページ1:
<div id="container">
<div class="box">Page 1 Box 1</div>
<div class="box">Page 1 Box 2</div>
<div class="box">Page 1 Box 3</div>
</div>
<nav id="page-nav">
<a href="link_to_page_2">Next/a>
</nav>
ページ2:
<div id="container">
<div class="box">Page 2 Box 4</div>
<div class="box">Page 2 Box 5</div>
<div class="box">Page 2 Box 6</div>
</div>
<nav id="page-nav">
<a href="link_to_page_3">Next/a>
</nav>
ページ 3:
<div id="container">
<div class="box">Page 3 Box 7</div>
<div class="box">Page 3 Box 8</div>
<div class="box">Page 3 Box 9</div>
</div>
<nav id="page-nav">
<a href="link_to_page_4">Next/a>
</nav>
Javascript:
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 );
});
});
ページをロードすると表示されます
ページ 1 ボックス 1
ページ 1 ボックス 2
ページ 1 ボックス 3
->スクロール
ページ 2 ボックス 4
ページ 2 ボックス 5
ページ 2 ボックス 6
->スクロール
ページ 2 ボックス 7
ページ 2 ボックス 8
ページ 2 ボックス 9
..
私の最初のアイデアは、ページ 2 の次のリンクが再びページ 2 を指すというものでした。しかし、inifinit-scroll を無効にすると、次のリンクを使用して、ページ 1、ページ 2、ページ 3 などと簡単にクリックできます。
私はバックグラウンドで Couchbase を使用しており、次のリンクは次のようなものです ( pagination w couchbase ):
?startkey="Box3-key"&startkey_docid=Box3&skip=1&limit=3
?startkey="Box6-key"&startkey_docid=Box6&skip=1&limit=3
?startkey="Box9-key"&startkey_docid=Box9&skip=1&limit=3
何が問題なのかわかりません。