サイトで Infinite Scroll と Fancybox を同時に使用すると問題が発生します。最初にロードされた画像ですべてが正常に機能します..新しいコンテンツが無限スクロールを介してプルされるとすぐに、新しい画像はFancyboxで開かれなくなります...これまでのところ、元のFancybox呼び出しは「見た」ことはありません新しい要素。
したがって、Fancybox を Infinite Scroll コールバックに通す必要があります。または、少なくともこれは、こことGoogleを読んだ後に思いついたものです.
ただし、コードは新しく読み込まれた画像に Fancybox を適用するようになりましたが、Fancybox オーバーレイにはエラーが表示されます: 要求されたコンテンツを読み込めません。後でもう一度やり直してください。
問題が何であるかを理解できないようです。大歓迎です!!
そうそう、私もアイソトープを使用しており、すべてがWordpressで実行されていることにも言及する必要があります. 私もこれを見つけました:Infinite-Scrollと一緒にEasyFancybox Wordpress Pluginを使用していますが、まだ正しく機能させることができていません...
私がこれまでに思いついたこと:
// ISOTOPE
$(window).load(function(){
var $container = $('#portfolio-centre-wrap')
// initialize Isotope
$container.isotope({
// options...
resizable: false, // disable normal resizing
// set columnWidth to a percentage of container width
itemSelector : '.portfolio-item',
masonry: { columnWidth: $container.width() / 3 }
});
$container.infinitescroll({
navSelector : '#pagination', // selector for the paged navigation
nextSelector : '#pagination .next a', // selector for the NEXT link (to page 2)
itemSelector : '.portfolio-item', // selector for all items you'll retrieve
loading: {
finishedMsg: 'Sorry, that is it for now...',
img: 'http://dev.deborre.net/wp-content/themes/deborre2012v2/_img/loading.gif',
msgText: ''
}
},
// call Isotope as a callback
function(newElements) {
var $newElems = $(newElements);
$newElems.imagesLoaded(function(){
$container.isotope('appended', $newElems );
//fancybox
var thumbnails = jQuery("a:has(img)").not(".nolightbox").filter( function() { return /\.(jpe?g|png|gif|bmp)$/i.test(jQuery(this).attr('href')) });
thumbnails.addClass("fancybox").attr("rel","fancybox").getTitle();
$(newElements).fancybox({
'cyclic': true,
'autoScale': true,
'padding': 10,
'opacity': true,
'speedIn': 500,
'speedOut': 500,
'changeSpeed': 300,
'overlayShow': true,
'overlayOpacity': "0.8",
'overlayColor': "#585858",
'titleShow': false,
'titlePosition': 'inside',
'enableEscapeButton': true,
'showCloseButton': true,
'showNavArrows': true,
'hideOnOverlayClick': true,
'hideOnContentClick': true,
'width': 560,
'height': 340,
'transitionIn': "fade",
'transitionOut': "fade",
'centerOnScroll': true
});
});
}
);
//答え:
変化しているようです:
$(newElements).fancybox({
に:
$(.fancybox).fancybox({
私のために問題を解決しました。