Интеграция Slimbox (или Lightbox) с бесконечной прокруткой

Моя личная фотогалерея использует Masonry (для упорядочивания фотографий) и Infinite scroll (чтобы сократить время загрузки фотографий). Я недавно добавил 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>

0 ответов

Другие вопросы по тегам