2017-04-23 10 views
0

私はPhotoSwipe jQueryのプラグインを使用しています。フォトワイプギャラリーを表示中にユーザーがリンクをクリックする方法を教えてください。

私のウェブサイトは、ユーザーがスクロールしたときに固定メニューを使用します。

Zインデックスでは、フォトワイプギャラリーにメニューを重ねることができませんでした。そこで、私はphotoswipeのデフォルトペインのサイズを変更し、メニューのスペースを詰めました。私が好むこの外観も好む。

PhotoSwipeを使用して他のページに移動する代わりにPhotoSwipeのコールバックが表示され、ユーザーが自分の所在地にリダイレクトされるように見えます。

私がphotoswipのdestroyコールバックを使用してアラートを入れると、リダイレクトが遅れます(ユーザーがどこにいたかのページに戻ります)。

リダイレクトされずにフォトワイプギャラリーを閉じることをユーザーに許可するにはどうすればよいですか?

編集: これはフォトワイプギャラリーを初期化する方法です。

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ディスプレイのスクリーンショットを参照してください。私のメインメニューはまだ表示されており、ユーザーはそのメニューをクリックできます。 enter image description here

+0

items変数に値を設定しましたか? photoswipeを初期化して呼び出すコードを投稿してください。 –

+0

私は質問を編集しました。ありがとう。 –

+0

これは、私がphotoswipeで持っていた問題でした。不適切なアイテムの変数、JavaScriptエラー(この場合、イメージはそのタブで開かれます)。あなたが持っているかもしれないことは、あなたのメニューがクリックされ、どこかでユーザーを連れてくるという問題ですか?正直なところ、私はあなたがこれで何を意味するのか分かりません。「PhotoSwipeを使って他のページに移動する代わりにPhotoSwipeのあるコールバックが、彼の出身地にユーザをリダイレクトするように見えます。 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ファイルを直接編集することもできます。

関連する問題