Как разрешить пользователю нажимать на ссылку при отображении галереи фотоизображений?

Я использую плагин PhotoSwipe для jQuery.

Мой сайт использует фиксированное меню, когда пользователь прокручивает страницу вниз.

С z-index я не смог заставить галерею photoswipe перекрывать мое меню. Поэтому я изменил размер панели по умолчанию, чтобы освободить место для меню. Эту внешность я тоже предпочитаю.

Теперь, когда я открываю фотографию, но затем перехожу на другую страницу с PhotoSwipe, появляется некоторый обратный вызов PhotoSwipe, чтобы перенаправить пользователя туда, откуда он пришел.

Если я использую функцию обратного вызова photoswip для удаления и помещаю в нее предупреждение, это задерживает перенаправление (обратно на страницу, с которой пришел пользователь).

Как я могу разрешить пользователю закрывать фотогалерею без перенаправления?

РЕДАКТИРОВАТЬ: Вот как я инициализирую галерею photoswipe.

function showSoftwareGallery(sections, index){
    var pswpElement = document.querySelectorAll('.pswp')[0];

    var items = new Array(sections.length);
    for(var i=0; i<sections.length; i++){
        items[i] = {
            src: sections[i].image,
            w: 1920,
            h: 1080,
        };
    }

// define options (if needed)
    var options = {
        // optionName: 'option value'
        // for example:
        index: index, // start at first slide
        escKey: true,
        arrowKeys: true,
        shareEl: false,
        closeEl:true,
        captionEl: true,
        fullscreenEl: true,
        zoomEl: true,
    };

// Initializes and opens PhotoSwipe
    var headerHeight = $('nav').first().height();
    var height = $(window).height() - headerHeight;
    $('.pswp').first().css('height', height + 'px');
    $('.pswp').first().css('top', headerHeight + 'px');
    var gallery = new PhotoSwipe( pswpElement, PhotoSwipeUI_Default, items, options);


    gallery.listen('destroy', function() { alert('destroy')});


    gallery.init();
}

Редактировать 2 Вы видите здесь скриншот моего дисплея photoswipe. Это показывает, что мое главное меню все еще видимо, и пользователь может щелкнуть по нему. введите описание изображения здесь

1 ответ

src/js/history.js Файл содержит этот код:

        _listen('destroy', function() {
            if(!_hashReseted) {
                returnToOriginal();
            }
        });

Вы не предоставили воспроизводимый код, так что это не 100%, но должно быть полезно. Я бы изменил этот код на это:

        _listen('destroy', function() {
            if(!_hashReseted && !myApp.shouldClosePhotoswipe) {
                returnToOriginal();
            }
        });

В вашем приложении добавьте этот код:

var myApp = {
    // mix in with your javascript code
    shouldClosePhotoswipe: false
}

И когда меню щелкнуло, чтобы пойти куда-нибудь, просто добавьте эту строку

myApp.shouldClosePhotoswipe = true;

Тогда вам нужно восстановить dist/photoswipe.js файл.
Вы также можете просто отредактировать dist/photoswipe.js файл напрямую.

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