2016-09-16 5 views
1

Я использую Slick Клея Уилера и хочу, чтобы автовоспроизведение было ложным, когда пользователь либо нажимает на slick-prev, либо slick-next или перетаскивает карусель влево или вправо.Как остановить слайд-слайдер автозапуска при щелчке и перетаскивании

slick = $('.slick').slick({ 
     slidesToShow: 3, 
     slidesToScroll: 2, 
     autoplay: true, 
     autoplaySpeed: 2500, 
     dots: false, 
     }); 

Я попытался следующие

$('.slick-prev, .slick-next').on('click', function(){ 
     slick.slickSetOption('autoplay', false, false); 
}); 

И

$('.slick-prev, .slick-next').on('click', function(){ 
     $(slider).slick('slickSetOption', 'autoplay', false, false); 
    }); 

Оба не работают, и я не знаю, как искать перетаскиваемом события.

+0

Вы хотите, чтобы после некоторого события 'autoplay' вернулись к' true' тоже? –

+0

Нет, я хочу, чтобы он остался на ложном – Bart

+0

Я обновил свой ответ, если вы проверили это раньше, повторите проверку. –

ответ

2

Обновлено

Вам нужно с помощью slickSetOption, как показано ниже:

HTML

<div class="my-slick"> 
    <div>Box 1</div> 
    <div>Box 2</div> 
    <div>Box 3</div> 
    <div>Box 4</div> 
</div> 

JS

var slickOptions = { 
     autoplay: true, 
     // rest of options 
    }, 
    $slick = $('.my-slick'); 

$slick.slick(slickOptions); 

// built-in feature, for more info check the [doc](http://kenwheeler.github.io/slick/) 
$slick.on('swipe', function(event, slick, direction) { 
    reinitSlick(); 
}); 

$('.slick-prev, .slick-next').on('click', function(){ 
    reinitSlick(); 
}); 

var reinitSlick = function() {  
    $slick.slick('slickSetOption', { 
     'autoplay': false 
    }, false); 
} 

Codepen