javascript - 模态叠加层中的多个 Slick 轮播同时播放

标签 javascript jquery css carousel slick.js

我有一个包含许多隐藏的 Slick 轮播的页面。

要启动轮播,我希望用户单击相关按钮,然后相应的 slider 将显示在其后面带有半透明背景的模态中。

但是,当您在页面上启动任何轮播时,所有轮播都会启动,并且可以看到一个接一个地自动播放。

这是我的 HTML:

<button class="launch-gallery">Launch gallery 1</button>
<div class="modal">
  <div class="img-gallery">
  <h2>Gallery 1</h2>
  <div class="img-gallery__slides">
    <div class="img-gallery__slide">
      <img src="image-1.jpg" alt="" />
    </div>
    <div class="img-gallery__slide">
      <img src="image-2.jpg" alt="" />
    </div>
  </div>
</div>

<button class="launch-gallery">Launch gallery 2</button>
<div class="modal">
  <div class="img-gallery">
  <h2>Gallery 2</h2>
  <div class="img-gallery__slides">
    <div class="img-gallery__slide">
      <img src="image-3.jpg" alt="" />
    </div>
    <div class="img-gallery__slide">
      <img src="image-4.jpg" alt="" />
    </div>
  </div>
</div>

这是我触发模态的 JS:

var $galleryModal = $('.modal');

$('.launch-gallery').click(function(){

    $galleryModal.toggleClass('is-open');

    return false;
});

这是我的 Slick 配置:

var $imgGallery = $('.img-gallery__slides');

$imgGallery.slick({
  infinite: true,
  slidesToShow: 1,
  slidesToScroll: 1,
  dots: false,
  arrows: false,
  accessibility: false,
  cssEase: 'ease',
  autoplay: true,
  autoplaySpeed: 5000,
});

有没有办法只启动与点击的按钮相关的一个轮播?

最佳答案

尝试这样的事情

$('.launch-gallery').click(function(){

$(this).next('.modal').toggleClass('is-open');

return false;
});

关于javascript - 模态叠加层中的多个 Slick 轮播同时播放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46644830/

相关文章:

javascript - Json和html显示

javascript - 仅当视频未结束时才重新开始

jquery - 单击时从中心向左动画 div

javascript - 最后只出现一次 '%' 的接受号码的正则表达式

javascript - 在文档准备好时模拟按键

javascript - 使用 Jquery 更改日期格式

javascript - Jquery 数据表搜索

c++ - 为什么添加到网格布局中的动态按钮彼此之间有很大的距离?

javascript - 如何找到合适的 DOM 方法以在 div 中选择的 'px' 中获得位置

css - 在 HTML/CSS 中禁用垂直溢出