PhotoSwipe:有没有一种方法可以将事件处理程序附加到“ init”事件,或者当插件打开灯箱时?

贾斯汀道

我正在将PhotoSwipe灯箱与Slick轮播一起用于一个项目,并且我希望在photowipe灯箱未打开时自动进行轮播,但是当灯箱打开时,我希望自动播放停止。

PhotoSwipe API中,它们有一个closeanddestroy事件要监听,但没有一个forinit事件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();
贾斯汀道

因此,我发现您可以在初始化之前做您需要做的事情,然后在上附加一个事件处理程序close

另外,Slick还有一个问题,即使用slickSetOption1.3.15版以上命令无法关闭自动播放功能

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();   

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

Related 相关文章

热门标签

归档