【问题标题】:Slick slider random autoplay speed for more sliders with same slider class滑动滑块随机自动播放速度,用于具有相同滑块类的更多滑块
【发布时间】:2020-01-13 02:29:19
【问题描述】:

我正在使用光滑的滑块。我在页面上有三个滑块,它们都有相同的类和光滑的选项。但是,我想要三个不同的 slick 'autoplaySpeed' 选项,或者为所有三个滑块添加随机延迟,而不是为每个滑块创建不同的类。这可能吗?

三个同名的幻灯片:

https://jsfiddle.net/x78y143f/1/

$('.slider').slick({
  arrows: false,
  infinite: true,
  speed: 1000,
  autoplay: true,
  autoplaySpeed: 2000,
  fade: true,
  slidesToShow: 1,
  slidesToScroll: 1
});
.flex-row {
  display: flex;
}

.slider {
  width: 33.33%;
  padding: 20px;
}

.slider div img {
  width: 100%;
  height: auto;
}
<div class="flex-row">
  <div class="slider">
    <div>
      <img src="http://kenwheeler.github.io/slick/img/fonz1.png" />
    </div>
    <div>
      <img src="http://kenwheeler.github.io/slick/img/fonz2.png" />
    </div>
  </div>
  <div class="slider">
    <div>
      <img src="http://kenwheeler.github.io/slick/img/fonz2.png" />
    </div>
    <div>
      <img src="http://kenwheeler.github.io/slick/img/fonz3.png" />
    </div>
  </div>
  <div class="slider">
    <div>
      <img src="http://kenwheeler.github.io/slick/img/fonz3.png" />
    </div>
    <div>
      <img src="http://kenwheeler.github.io/slick/img/fonz1.png" />
    </div>
  </div>
</div>

预期结果(三个不同的“autoplaySpeed”选项):

https://jsfiddle.net/x78y143f/2/

$('.slider1').slick({
  arrows: false,
  infinite: true,
  speed: 1000,
  autoplay: true,
  autoplaySpeed: 2000,
  fade: true,
  slidesToShow: 1,
  slidesToScroll: 1
});

$('.slider2').slick({
  arrows: false,
  infinite: true,
  speed: 1000,
  autoplay: true,
  autoplaySpeed: 5000,
  fade: true,
  slidesToShow: 1,
  slidesToScroll: 1
});

$('.slider3').slick({
  arrows: false,
  infinite: true,
  speed: 1000,
  autoplay: true,
  autoplaySpeed: 8000,
  fade: true,
  slidesToShow: 1,
  slidesToScroll: 1
});
.flex-row {
  display: flex;
}

.slider1,
.slider2,
.slider3 {
  width: 33.33%;
  padding: 20px;
}

.slider1 div img,
.slider2 div img,
.slider3 div img {
  width: 100%;
  height: auto;
}
<div class="flex-row">
  <div class="slider1">
    <div>
      <img src="http://kenwheeler.github.io/slick/img/fonz1.png" />
    </div>
    <div>
      <img src="http://kenwheeler.github.io/slick/img/fonz2.png" />
    </div>
  </div>
  <div class="slider2">
    <div>
      <img src="http://kenwheeler.github.io/slick/img/fonz2.png" />
    </div>
    <div>
      <img src="http://kenwheeler.github.io/slick/img/fonz3.png" />
    </div>
  </div>
  <div class="slider3">
    <div>
      <img src="http://kenwheeler.github.io/slick/img/fonz3.png" />
    </div>
    <div>
      <img src="http://kenwheeler.github.io/slick/img/fonz1.png" />
    </div>
  </div>
</div>

我希望所有三个滑块都有不同的幻灯片更改开始(每个滑块中的幻灯片不必随机更改)。

【问题讨论】:

  • 您可以使用each loop 并以随机速度启动每一个
  • 能否请您发布一些代码并展示如何做到这一点。我是 javascript 新手,所以我不知道该怎么做,但我明白你的意思。

标签: javascript jquery html slider slick.js


【解决方案1】:

您可以在原始选择器上使用each loop

$('.slider').each(function(index) {
  var randomSpeed = 1000 * (index + 1);  // code to calculate random speed here

  $(this).slick({
    arrows: false,
    infinite: true,
    speed: 1000,
    autoplay: true,
    autoplaySpeed: randomSpeed,
    fade: true,
    slidesToShow: 1,
    slidesToScroll: 1
  });
});

如果您需要生成正确的随机数,请查看Math.random()

【讨论】:

猜你喜欢
  • 2022-11-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-15
  • 2020-06-28
  • 1970-01-01
相关资源
最近更新 更多