普通のスライダーは全部表示時間が同じですが、1枚目だけ長くしたい時などたま〜にあります。
今回はslickを使ってその方法をご紹介します。
slickの基本的な使い方と、slickを使うのに必要なjQueryの使い方については以下の記事を参照下さい。
レスポンシブ対応のスライダープラグイン slickの使い方
続きを見る
【初心者向け】jQueryとは?CDNを使った本体の読み込み方も分かりやすく解説
続きを見る
またslickには色々カスタマイズが出来るオプションがあるので、そちらも合わせて活用すると実装出来るスライダーの幅が広がります。
【slick】カスタマイズ用オプションまとめ一覧
続きを見る
(有料になっていたらすいません🙇♂️)
slickスライダーで特定のスライドだけ表示時間を変える方法
まずはデモを見てみます。
See the Pen
slick(時間調整) by junpei (@junpei-sugiyama)
on CodePen.
1枚目のスライドはこの画像です。
そして今回設定したのは、
- 1枚目の初回は3000ミリ秒
- 1枚目の2週目以降は100ミリ秒
- 3枚目は500ミリ秒
- それ以外は2000ミリ秒
となります(Rerunをクリックすればリロードされます)
コード解説
HTMLとCSSは特に変わった所はないので省略します(デモのHTMLとCSSをクリックすれば見れます)
今回のポイントとなるのはこちらのjQueryです。
$(".slider").slick({
autoplay: true,
autoplaySpeed: 3000 // 1枚目初回の秒数
})
.on("afterChange", function(event, slick, currentSlide) {
switch (currentSlide){
case 0:
// 1枚目2週目以降の秒数
$(this).slick("slickSetOption", "autoplaySpeed", 100);
break;
case 2:
// 3枚目の秒数
$(this).slick("slickSetOption", "autoplaySpeed", 500);
break;
default:
// その他の秒数
$(this).slick("slickSetOption", "autoplaySpeed", 2000);
break;
}
});
3行目
autoplaySpeed: 3000
は1枚目の初回の秒数を設定します(単位はミリ秒)
ファーストビューなどに実装したスライダーで、1枚目だけ表示時間を長くしたいという事はあると思います。
2週目以降の1枚目のスライドの表示時間はこの後設定します。
5行目
afterChange
はスライドが切り替わった後に発生するイベントです。
つまり2枚目のスライド以降に発生するイベントになります。
5行目以降に1枚目のスライドの時間を設定していますが、1枚目の初回のみafterChange
は適用されないので、3行目で設定しています。
6行目以降
currentSlide
に表示されているスライド番号が入ります。
それをswitch文を使って指定したスライドに対して時間を指定しています(currentSlideh
は指定したオプションの値を変えるメソッド)
番号は0から始まるので、1枚目のスライドはcase 0となります。
スライドの表示時間で指定出来るのは、
- 1枚目の初回
- 1枚目の2周目以降
- 1枚目以外の指定した番号
- 指定した番号以外
となります。
まとめ
今回はslickで特定のスライドだけ表示時間を変える方法を解説しました。
あまり使う機会はないかと思いますが、1枚目だけ長く表示したいという場合はあるかも知れません。
以上になります。
関連記事slick記事一覧
関連記事Swiper記事一覧
関連記事Splide記事一覧