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

How can I change the speed of slider using arrow in Slick Carousel?

我创建了一个显示类似于选取框的徽标滑块。 我想做的是添加 next/prev 箭头,可以在单击下一个箭头时加快滑块的速度,并在单击上一个箭头时反转滑块。 我目前使用 slick carousel 来做了。

我也不知道为什么有时我的轮播会暂停一秒钟然后继续,谁能帮我解决这个问题?

$(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

这可以用来使滑块变慢

 $("#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

点击按钮首先销毁滑块,然后以 increased/decreased 速度再次添加滑块

你也可以试试这个$('.marquee-logo').slick('slickSetOption', 'speed', 500,true);而不破坏滑块

但是通过 slickSetOption 方法改变速度会导致 delay:issue https://github.com/kenwheeler/slick/issues/2334

用户XZY的回答对我有用。在玩它时,我还注意到 slick(至少在我使用的实现中)公开了一个可修改的 options 属性。所以以下可能也有效:

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

slickSlider.slick.options.autoplaySpeed = 500