如何在 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>
这可以用来使滑块变慢
$("#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
我创建了一个显示类似于选取框的徽标滑块。 我想做的是添加 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>
这可以用来使滑块变慢
$("#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