私のマグニフィック ポップアップ スライド ショーは、「スライド ショーの開始」ボタンと目的の間隔の入力を備えた小さなフォームを使用します。スライド ショー オブジェクトには、基本的に次のコードがあります。
var slideshow = {
interval: 4,
intervalTimer: null,
currImgNo: 0,
insertController: function(parentElement) {
// DOM code to create form html
$(slideShowStartButton).on('click', function(e){
$('.popup-parent-container').magnificPopup('open', slideshow.currImgNo);
if ($.magnificPopup.instance.index + 1
< $.magnificPopup.instance.items.length) {
$.magnificPopup.instance.next();
slideshow.currImgNo++;
} else {
$('.popup-parent-container').magnificPopup('close');
}
}, slideshow.interval * 1000);
});
}
$(document).ready(function() {
slideshow.insertController(/* This code depends on the slide show controller html */);
});
スライド ショーのプロパティcurrImgNoは、最後にポップアップされた画像でスライド ショーに入り、ループを防ぐために使用されます。
Magnific Popup は、open および close イベント ハンドラーに追加の行を取得しました。
$('.popup-parent-container').magnificPopup({
// ...
callbacks: {
open: function() {
slideshow.currImgNo = this.index;
},
close: function() {
if (slideshow.intervalTimer) {
clearInterval(slideshow.intervalTimer);
}
}
}
});
これは、少なくとも私がテストした一部の WebKit および Gecko ブラウザーでは問題なく動作します。
私のバージョンではさらに全画面表示モードが起動しますが、ブラウザー間で動作するにはさらにコードが必要です。