回答編集履歴
3
コードの修正
answer
CHANGED
@@ -24,30 +24,24 @@
|
|
24
24
|
</div>
|
25
25
|
```
|
26
26
|
|
27
|
-
```
|
27
|
+
```JavaScript
|
28
28
|
var $slider = $('.slider'),
|
29
29
|
contentLength = $slider.children().length - 1; // .slider直下の要素の数を取得。0から始まるインデックス番号と合致させる為に1引く。この数は最後のスライド番号と同じになります。
|
30
30
|
|
31
|
-
|
31
|
+
$slider.slick({
|
32
32
|
slidesToShow: 1,
|
33
33
|
autoplay: true,
|
34
34
|
pauseOnHover: false,
|
35
35
|
autoplaySpeed: 2000,
|
36
36
|
arrows: false,
|
37
37
|
fade: true
|
38
|
+
}).on('afterChange', function() {
|
39
|
+
// 現在のスライド番号(最初は0)を取得。
|
40
|
+
var currentSlide = $slider.slick('slickCurrentSlide');
|
41
|
+
|
42
|
+
// 最後のスライド番号と一致したら止める。
|
43
|
+
if(currentSlide === contentLength){
|
44
|
+
$slider.slick('slickPause');
|
45
|
+
}
|
38
46
|
});
|
39
|
-
|
40
|
-
var $sliderInner = $slider.find('.slick-slide');
|
41
|
-
|
42
|
-
// .slick-slideのtransitionendのタイミングで毎回実行するようにイベントを設定。
|
43
|
-
$sliderInner.on('transitionend', function(){
|
44
|
-
// 現在のスライド番号(最初は0)を取得。
|
45
|
-
var currentSlide = $slider.slick('slickCurrentSlide');
|
46
|
-
|
47
|
-
// 現在の番号と、最後の番号を比較して、最後の番号だったらオートプレイを止める。
|
48
|
-
if(currentSlide === contentLength){
|
49
|
-
$slider.slick('slickPause');
|
50
|
-
}
|
51
|
-
});
|
52
|
-
|
53
47
|
```
|
2
実際のコードサンプルを追加
answer
CHANGED
@@ -8,10 +8,46 @@
|
|
8
8
|
最後のスライドまで行くと止まる、という機能は含まれていません。
|
9
9
|
なので、最後のスライドまで行ったタイミングで、下記のメソッドを使う形になると思います。
|
10
10
|
|
11
|
+
```JavaScript
|
12
|
+
$('.slider').slick('slickPause');
|
13
|
+
|
14
|
+
```
|
15
|
+
|
11
16
|
「slickPause」は、オートプレイを止めるメソッドです。
|
12
17
|
任意のタイミング(今回の場合は最後のスライドが表示されたタイミング)で使うようにJSを書けば良いと思います。
|
13
18
|
|
14
|
-
```
|
19
|
+
```HTML
|
20
|
+
<div class="slider">
|
15
|
-
|
21
|
+
<div>sample1</div>
|
22
|
+
<div>sample2</div>
|
23
|
+
<div>sample3</div>
|
24
|
+
</div>
|
25
|
+
```
|
16
26
|
|
27
|
+
```
|
28
|
+
var $slider = $('.slider'),
|
29
|
+
contentLength = $slider.children().length - 1; // .slider直下の要素の数を取得。0から始まるインデックス番号と合致させる為に1引く。この数は最後のスライド番号と同じになります。
|
30
|
+
|
31
|
+
$slider.slick({
|
32
|
+
slidesToShow: 1,
|
33
|
+
autoplay: true,
|
34
|
+
pauseOnHover: false,
|
35
|
+
autoplaySpeed: 2000,
|
36
|
+
arrows: false,
|
37
|
+
fade: true
|
38
|
+
});
|
39
|
+
|
40
|
+
var $sliderInner = $slider.find('.slick-slide');
|
41
|
+
|
42
|
+
// .slick-slideのtransitionendのタイミングで毎回実行するようにイベントを設定。
|
43
|
+
$sliderInner.on('transitionend', function(){
|
44
|
+
// 現在のスライド番号(最初は0)を取得。
|
45
|
+
var currentSlide = $slider.slick('slickCurrentSlide');
|
46
|
+
|
47
|
+
// 現在の番号と、最後の番号を比較して、最後の番号だったらオートプレイを止める。
|
48
|
+
if(currentSlide === contentLength){
|
49
|
+
$slider.slick('slickPause');
|
50
|
+
}
|
51
|
+
});
|
52
|
+
|
17
53
|
```
|
1
加筆
answer
CHANGED
@@ -8,6 +8,9 @@
|
|
8
8
|
最後のスライドまで行くと止まる、という機能は含まれていません。
|
9
9
|
なので、最後のスライドまで行ったタイミングで、下記のメソッドを使う形になると思います。
|
10
10
|
|
11
|
+
「slickPause」は、オートプレイを止めるメソッドです。
|
12
|
+
任意のタイミング(今回の場合は最後のスライドが表示されたタイミング)で使うようにJSを書けば良いと思います。
|
13
|
+
|
11
14
|
```JavaScript
|
12
15
|
$('.slider').slick('slickPause');
|
13
16
|
|