我正在使用PhotoSwipe灯箱与Slick旋转木马一起进行项目,我希望在照片组灯箱未打开的情况下让旋转木马自动播放,但是当灯箱打开时,我希望自动播放停止。
在PhotoSwipe API中,他们有close
和destroy
个事件要收听,但不是init
或open
的事件。有没有人找到一个很好的方法来做到这一点?
类似的东西:
$('#gallery').slick({
autoplay: true,
dots: true,
});
// ... Setup photoswipe...
pswp.listen('open', function() {
$('#gallery').slickSetOption('autoplay', false, false);
});
pswp.listen('close', function() {
$('#gallery').slickSetOption('autoplay', true, false);
});
pwsp.init();
答案 0 :(得分:0)
为此,我发现你可以在init之前完成你需要做的事情,然后在close
上附加一个事件处理程序。
此外,Slick还存在一个问题,即自版本1.3.15起,使用slickSetOption
命令无法关闭自动播放。
https://github.com/kenwheeler/slick/issues/731
以下是基于该问题的评论之一的解决方法:
// ... Setup PhotoSwipe ...
slider.slickPause();
slider.find('.slick-list').off('mouseleave.slick');
gallery.listen('close', function() {
slider.slickPlay();
slider.find('.slick-list').on('mouseleave.slick', function() {
slider.slickPlay();
});
});
gallery.init();