Slickでカルーセルをクリックしたらautoplayを止めたい
Slickを使用してレスポンシブなスライダーを作っています。
スライダー下部に画像の枚数分付与されるカルーセル「●」をクリックした際に、
autoplayが止まるようにしたいです。
初期表示時はautoplayを実行し、カルーセルをクリックした時にのみautoplayが止まるイメージです。
ul.sliderにてslickのアウターを指定しています。
発生している問題
●正常(autoplayが止まる)
①safari、961px以上のchrome
②960px以下かつchromeで、一度autoplayが実行され、2枚目のスライドが表示された以降、カルーセルをクリック
●問題(autoplayが止まらない)
①960px以下かつchromeで、ローディングして画面初期表示直後にカルーセルをクリック
②windows版のchromeに限り、960px以下にウィンドウを縮めた状態で、正常①でautoplayを止めた後に別のウィンドウをアクティブにする
$('.slick-dots li').clickortouch(function(){ $('.slider').slick('slickSetOption', 'autoplay', false, true); });
該当のソースコード
$('.slider').slick({ infinite: true, dots: true, slidesToShow: 1, centerMode: true, centerPadding:'0', variableWidth: true, autoplay: true, autoplaySpeed: 3000, speed: 1000, responsive: [{ breakpoint: 960, settings: { variableWidth: false, } }] }); $('.slick-dots li').clickortouch(function(){ $('.slider').slick('slickSetOption', 'autoplay', false, true); });
最終的に試したこと
$('.slider').slick({ infinite: true, dots: true, slidesToShow: 1, centerMode: true, centerPadding:'0', variableWidth: true, autoplay: true, autoplaySpeed: 3000, speed: 1000, waitForAnimate: false }); $(window).on('load resize', function() { var windowWidth = window.innerWidth; if (windowWidth < 960) { $('.slider').slick('slickSetOption', 'variableWidth', false, true); } else { $('.slider').slick('slickSetOption', 'variableWidth', true, true); } }); var ua = navigator.userAgent; if (ua.indexOf('iPhone') > 0 || ua.indexOf('Android') > 0 && ua.indexOf('Mobile') > 0) { $('.slick-dots li').clickortouch(function(){ $('.slider').slick('slickSetOption', 'autoplay', false, true); }); } else { $(document).on('click', '.slick-dots li button', function() { $('.slider').slick('slickPause'); $('.slider').slick('slickSetOption', 'autoplay', false, true); }); }
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/11/13 04:48
2018/11/13 05:23
2018/11/13 06:17