0

我遇到了 Photoswipe 画廊的问题。我遇到的问题是,我单击缩略图,整个页面及其控件以及图像正在加载,然后只显示一个空白页面。

这只发生在我的移动设备(android 4.0.4)上,无论是在标准浏览器中还是在 chrome 中。但是我笔记本电脑上的 Firefox 和 chrome 都可以正常工作。

我附加了 chrome 远程调试器,一切似乎都正常。

在 chrome mobile 上,url-hash#&ui-state=dialog在 android 标准浏览器、桌面 chrome 和 firefox 中更改为 hash 不会改变并显示#pageid.

我试图调试代码,但我无法找出问题所在。

图库标记是在pagebeforechange事件中注入的。并且Photoswipe初始化如下:

(function(window, $, PhotoSwipe){
    $(document).ready(function(){
        console.log('document ready')

        $('div.gallery-page').live('pageshow', function(e){
            console.log('pageshow');
            var currentPage = $(e.target);
            var options = { enableMouseWheel: false , enableKeyboard: false };                    
            var photoSwipeInstance = $("ul.gallery a", e.target).photoSwipe(options,  currentPage.attr('id'));
            console.log(e.target);

            return true; 
        }).live('pagehide', function(e){

            var currentPage = $(e.target),
                photoSwipeInstance = PhotoSwipe.getInstance(currentPage.attr('id'));

            if (typeof photoSwipeInstance != "undefined" && photoSwipeInstance != null) {
                PhotoSwipe.detatch(photoSwipeInstance);
            }

            return true;
        });
    });

}(window, window.jQuery, window.Code.PhotoSwipe)); 

任何关于为什么页面变为空白的想法,仅在移动设备上?

//编辑我目前的解决方法是在 pagebeforechange 事件上这样做:

if(window.location.hash.search(/ui-state=dialog/) !== -1 ) {
    console.log('ui-state anomaly');
    e.preventDefault();
}
4

1 回答 1

0

我遇到了同样的问题,并在https://github.com/codecomputerlove/PhotoSwipe/issues/375找到了解决方案

还将您在上面发布的初始代码中的所有“.live”替换为“.on”。确保用您自己的 div 替换“YourGalleryDiv”。

$(document).bind('pagebeforechange', function(e) {
if ($('.ps-carousel').length) {
$('body').removeClass('ps-active');
$('#YourGalleryDiv').each(function(){
    var photoSwipe = window.Code.PhotoSwipe;
    var photoSwipeInstance = photoSwipe.getInstance($(this).attr('id'));
    if (typeof photoSwipeInstance != "undefined" && photoSwipeInstance != null) {
        photoSwipe.unsetActivateInstance(photoSwipeInstance);
    }
});
}
});
于 2012-12-02T18:42:01.143 回答