infiniteオプションですが「無限ループ」のオン・オフを設定するだけでした。
フェードがオンだと効果がわからないのですが、
フェードをオフにすると、下記のようになります(autoplayはオンの状態です)
- 無限ループオン:最後のスライドまで行くと、最初のスライドが画面右から流れてくる。
- 無限ループオフ:最後のスライドまで行くと、左にスライドして、最初のスライドまで戻っていく。
最後のスライドまで行くと止まる、という機能は含まれていません。
なので、最後のスライドまで行ったタイミングで、下記のメソッドを使う形になると思います。
JavaScript
1$('.slider').slick('slickPause');
2
「slickPause」は、オートプレイを止めるメソッドです。
任意のタイミング(今回の場合は最後のスライドが表示されたタイミング)で使うようにJSを書けば良いと思います。
HTML
1<div class="slider">
2 <div>sample1</div>
3 <div>sample2</div>
4 <div>sample3</div>
5</div>
JavaScript
1var $slider = $('.slider'),
2 contentLength = $slider.children().length - 1; // .slider直下の要素の数を取得。0から始まるインデックス番号と合致させる為に1引く。この数は最後のスライド番号と同じになります。
3
4$slider.slick({
5 slidesToShow: 1,
6 autoplay: true,
7 pauseOnHover: false,
8 autoplaySpeed: 2000,
9 arrows: false,
10 fade: true
11 }).on('afterChange', function() {
12 // 現在のスライド番号(最初は0)を取得。
13 var currentSlide = $slider.slick('slickCurrentSlide');
14
15 // 最後のスライド番号と一致したら止める。
16 if(currentSlide === contentLength){
17 $slider.slick('slickPause');
18 }
19 });
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。