我的 Magnific Popup 幻灯片放映使用带有“开始幻灯片放映”按钮和所需间隔的输入的小表格。幻灯片放映对象基本上有以下代码:
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 在打开和关闭事件处理程序中有额外的行:
$('.popup-parent-container').magnificPopup({
// ...
callbacks: {
open: function() {
slideshow.currImgNo = this.index;
},
close: function() {
if (slideshow.intervalTimer) {
clearInterval(slideshow.intervalTimer);
}
}
}
});
这很好用,至少对于我测试过的一些 WebKit 和 Gecko 浏览器来说是这样。
我的版本还启动全屏模式,但这需要更多代码才能跨浏览器工作。