无限卷轴+砌体加载所有项目
Infinite Scroll + Masonry loading all items
我正在尝试使用 Infinite Scroll 设置 Masonry,它可以工作,但它当前会加载所有项目,然后当我单击下一页时 link 它会再次加载它们。
导航:
<div class="more" id="navigation">
<a href="./?page=2">MORE IDEAS</a>
</div>
JS:
$(document).ready( function() {
(function() {
// Main content container
var $container = $('.grid');
// Masonry + ImagesLoaded
$container.imagesLoaded(function(){
$container.masonry({
itemSelector: '.grid-item',
columnWidth: '.grid-sizer',
gutter: '.gutter-sizer',
percentPosition: true
});
});
// Infinite Scroll
$container.infinitescroll({
// selector for the paged navigation (it will be hidden)
navSelector : "#navigation",
// selector for the NEXT link (to page 2)
nextSelector : "#navigation a",
// selector for all items you'll retrieve
itemSelector : ".grid-item",
},
// 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 );
});
});
// Pause Infinite Scroll
$(window).unbind('.infscr');
// Resume Infinite Scroll
$('.more a').click(function(){
$container.infinitescroll('retrieve');
return false;
});
})();
});
内容:
<div class="grid">
<div class="grid-sizer"></div>
<div class="gutter-sizer"></div>
<div class="grid-item">Item 1</div>
<div class="grid-item">Item 2</div>
<div class="grid-item">Item 3</div>
<div class="grid-item">Item 4</div>
<div class="grid-item">Item 5</div>
<div class="grid-item">Item 6</div>
</div>
目前它加载所有项目,1 到 6,然后当我单击“加载更多”按钮时,它再次加载项目 1 到 6。我已经查看了其他几个与此类似的问题,但它们是不同的情况。这可能很简单,我们将不胜感激。
想通了。
您需要将要第二次加载的部分内容取出并放在另一个html 页面中。然后你需要设置导航link去那个页面。因为它刚刚设置为 ?page=2 它只是再次加载同一页面。
我正在尝试使用 Infinite Scroll 设置 Masonry,它可以工作,但它当前会加载所有项目,然后当我单击下一页时 link 它会再次加载它们。
导航:
<div class="more" id="navigation">
<a href="./?page=2">MORE IDEAS</a>
</div>
JS:
$(document).ready( function() {
(function() {
// Main content container
var $container = $('.grid');
// Masonry + ImagesLoaded
$container.imagesLoaded(function(){
$container.masonry({
itemSelector: '.grid-item',
columnWidth: '.grid-sizer',
gutter: '.gutter-sizer',
percentPosition: true
});
});
// Infinite Scroll
$container.infinitescroll({
// selector for the paged navigation (it will be hidden)
navSelector : "#navigation",
// selector for the NEXT link (to page 2)
nextSelector : "#navigation a",
// selector for all items you'll retrieve
itemSelector : ".grid-item",
},
// 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 );
});
});
// Pause Infinite Scroll
$(window).unbind('.infscr');
// Resume Infinite Scroll
$('.more a').click(function(){
$container.infinitescroll('retrieve');
return false;
});
})();
});
内容:
<div class="grid">
<div class="grid-sizer"></div>
<div class="gutter-sizer"></div>
<div class="grid-item">Item 1</div>
<div class="grid-item">Item 2</div>
<div class="grid-item">Item 3</div>
<div class="grid-item">Item 4</div>
<div class="grid-item">Item 5</div>
<div class="grid-item">Item 6</div>
</div>
目前它加载所有项目,1 到 6,然后当我单击“加载更多”按钮时,它再次加载项目 1 到 6。我已经查看了其他几个与此类似的问题,但它们是不同的情况。这可能很简单,我们将不胜感激。
想通了。
您需要将要第二次加载的部分内容取出并放在另一个html 页面中。然后你需要设置导航link去那个页面。因为它刚刚设置为 ?page=2 它只是再次加载同一页面。