私の個人的なフォト ギャラリーでは、メイソンリー(写真の配置用) と無限スクロール(写真のダウンロード時間を分割するため) を使用しています。最近、Slimbox2を追加しました(何らかの理由で Lightbox2 を動作させることができなかったため)。Slimbox2 は最初のページでは完全に機能しますが、無限スクロールによってロードされた次のページでは機能しません。
rel="lightbox-page1"
やなどの別のグループ名を使用するrel="lightbox-page2
か、グループ化をまったく使用しないでみましたが、どのアプローチも機能しませんでした。新しいページが読み込まれたときに Slimboxを更新する必要がありますか? InfiniteScroll の作成者は、次のコードを提案しています myLightbox.updateImageList();
。理にかなっていますか?Slimbox 用に変換する方法は? 2011年に私と同じ問題を抱えている人.
ここでライブの問題 を確認できます。これらは私が現在使用しているスクリプトです (ページのソースを表示できます)。
<script>
$(function() {
var $container = $('#gallery');
$container.imagesLoaded(function() {
$container.masonry({
itemSelector : '.box',
columnWidth : 1,
isAnimated : true
});
});
$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 : '/assets/img/loading.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>