如何使用Slick Carousel中的箭头更改滑块的速度?

时间:2016-10-25 04:41:35

标签: javascript html carousel slick.js

我创建了一个徽标滑块,显示类似于选框。 我想要做的是添加下一个/上一个箭头,可以在点击下一个箭头时加快滑块的速度,并在单击上一个箭头时反转滑块。我目前使用光滑的轮播来制作它。

另外我不知道为什么有时我的旋转木马暂停一秒然后继续,有人可以帮我这个吗?

$(document).ready(function($) {
  $('.marquee-logo').slick({
    autoplay: true,
    infinite: true,
    autoplaySpeed: 0,
    slidesToScroll: 1,
    slidesToShow: 5,
    arrows: false,
    cssEase: 'linear',
    speed: 6500,
    initialSlide: 1,
    draggable: false,
  });
});
<div class="marquee-logo">
  <div class="slider-logo">
    <img src="http://placehold.it/350x150">
  </div>
  <div class="slider-logo">
    <img src="http://placehold.it/350x150">
  </div>
  <div class="slider-logo">
    <img src="http://placehold.it/350x150">
  </div>
  <div class="slider-logo">
    <img src="http://placehold.it/350x150">
  </div>
  <div class="slider-logo">
    <img src="http://placehold.it/350x150">
  </div>
</div>

http://codepen.io/takumi24/pen/JRzEjA

2 个答案:

答案 0 :(得分:3)

这可用于使滑块缓慢

 $("#slowbutton").click(function(){

 $('.marquee-logo').slick('unslick');

 $('.marquee-logo').slick({
  autoplay: true,
  infinite: true,
  autoplaySpeed: 0,
  slidesToScroll: 1,
  slidesToShow: 5,
  arrows: false,
  cssEase: 'linear',
  speed: 10000,
  initialSlide: 1,
  draggable: false,
  });});

这样做更快

  $("#nextbutton").click(function(){
  $('.marquee-logo').slick('unslick');

 $('.marquee-logo').slick({
  autoplay: true,
  infinite: true,
  autoplaySpeed: 0,
  slidesToScroll: 1,
  slidesToShow: 5,
  arrows: false,
  cssEase: 'linear',
  speed: 300,
  initialSlide: 1,
  draggable: false,
  });
});

http://codepen.io/anon/pen/yawgra

在按钮上单击首先销毁滑块并以增加/减少的速度再次添加滑块

您也可以尝试使用此$('.marquee-logo').slick('slickSetOption', 'speed', 500,true);而不破坏滑块

但是,通过slickSetOption方法进行速度更改会导致延迟:问题https://github.com/kenwheeler/slick/issues/2334

答案 1 :(得分:0)

用户XZY的答案对我有用。在使用它时,我还注意到slick(至少在我使用的实现中)公开了options属性,该属性是可修改的。所以下面的方法也可以工作:

var slickSlider = $('.marquee-logo')[0]

slickSlider.slick.options.autoplaySpeed = 500