カルーセルスライダーは、視覚的なインパクトを与えつつ、コンテンツを効率よく表示するための便利なツールです。
中でもサムネイル付きのスライダーは、ユーザーに直感的なナビゲーションを提供し、より魅力的なデザインを実現できます。
今回は、軽量かつ高機能なJavaScriptライブラリ「Splide.js」を使って、サムネイル付きのカルーセルスライダーを簡単に作成する方法をご紹介します。
レメディオ
初心者でも手軽に実装できる手順を詳しく解説するので、ぜひ一緒に挑戦してみましょう!
当環境で使用しているsplide.jsのバージョンについて
splide-core.min.css(4.1.4)
splide.min.js(4.1.4)
目次
サムネイル付きのカルーセルスライダーの作成手順
サムネイル付きのカルーセルスライダーの作成手順は3つのステップに分かれています。
STEP
ちょっと難易度高め
プレビュー付きのサムネイルスライダーを作成!
STEP
難易度低い
メインスライダーは通常のスライダーなので簡単!
STEP
難易度かなり低い
.sync
を使って、同期させましょう。
レメディオ
ステップ1が少し難しいですが、そこを乗り越えれば後は簡単なので、頑張りましょう!
完成コードはこちら
サムネイルスライダーを作成
先に、サムネイルスライダーの完成コードは以下の通りです。
<section
id="thumbnail-carousel"
class="splide"
aria-label="サムネイルスライダー。各サムネイルをクリックすると、メインのスライダーが切り替わります"
>
<div class="splide__track">
<ul class="splide__list">
<li class="splide__slide"><img src="https://picsum.photos/id/1/200/200" alt="splide01" width="200" height="200"></li>
<li class="splide__slide"><img src="https://picsum.photos/id/2/200/200" alt="splide02" width="200" height="200"></li>
<li class="splide__slide"><img src="https://picsum.photos/id/3/200/200" alt="splide03" width="200" height="200"></li>
<li class="splide__slide"><img src="https://picsum.photos/id/4/200/200" alt="splide03" width="200" height="200"></li>
<li class="splide__slide"><img src="https://picsum.photos/id/5/200/200" alt="splide03" width="200" height="200"></li>
<li class="splide__slide"><img src="https://picsum.photos/id/6/200/200" alt="splide03" width="200" height="200"></li>
<li class="splide__slide"><img src="https://picsum.photos/id/7/200/200" alt="splide03" width="200" height="200"></li>
<li class="splide__slide"><img src="https://picsum.photos/id/8/200/200" alt="splide03" width="200" height="200"></li>
</ul>
</div>
</section>
#thumbnail-carousel {
.splide__slide {
opacity: 0.6;
}
.splide__slide.is-active {
opacity: 1;
}
}
const thumbnailCarousel = new Splide( '#thumbnail-carousel', {
fixedWidth: 100,
gap : 10,
rewind : true,
pagination: false,
focus : 'center',
isNavigation: true,
breakpoints: {
600: {
fixedWidth : 60,
fixedHeight: 44,
},
},
} );
thumbnailCarousel.mount();
- どのスライドが選択されているのか分かるようにする。
.splide__slide.is-active
の時の対応
- モバイル端末では
100px
だと少し大きいので調整。breakpoints
を設定
- 現在選択されているスライドは、中央に表示する。
focus
を'center'
に設定。
- 各スライドをクリック可能にするため、
isNavigation
をtrue
に設定。
メインスライダーを作成
先に、メインスライダーの完成コードは以下の通りです。
<section
id="main-carousel"
class="splide"
aria-label="サムネイルスライダー。各サムネイルをクリックすると、メインのスライダーが切り替わります"
>
<div class="splide__track">
<ul class="splide__list">
<li class="splide__slide"><img src="https://picsum.photos/id/1/400/400" alt="splide01" width="400" height="400"></li>
<li class="splide__slide"><img src="https://picsum.photos/id/2/400/400" alt="splide02" width="400" height="400"></li>
<li class="splide__slide"><img src="https://picsum.photos/id/3/400/400" alt="splide03" width="400" height="400"></li>
<li class="splide__slide"><img src="https://picsum.photos/id/4/400/400" alt="splide03" width="400" height="400"></li>
<li class="splide__slide"><img src="https://picsum.photos/id/5/400/400" alt="splide03" width="400" height="400"></li>
<li class="splide__slide"><img src="https://picsum.photos/id/6/400/400" alt="splide03" width="400" height="400"></li>
<li class="splide__slide"><img src="https://picsum.photos/id/7/400/400" alt="splide03" width="400" height="400"></li>
<li class="splide__slide"><img src="https://picsum.photos/id/8/400/400" alt="splide03" width="400" height="400"></li>
</ul>
</div>
</section>
const mainCarousel = new Splide( '#main-carousel', {
type: 'fade',
rewind: true,
pagination: false,
arrows: false,
} );
mainCarousel.mount();
id
をサムネイルスライダーと別の名前にする。(id="main-carousel")
- fadeスライドを作成したいので、
type: 'fade'
を指定する。
レメディオ
サムネイルスライダーとメインスライダーを同期
最後に、Splide#sync()
メソッドを用いて、作成した2つのスライダーを同期させます。
const mainCarousel = new Splide( '#main-carousel', {
// 省略
});
const thumbnailCarousel = new Splide( '#thumbnail-carousel', {
// 省略
});
mainCarousel.sync(thumbnailCarousel);
mainCarousel.mount();
thumbnailCarousel.mount();
Splide#sync()
メソッドは、Splide#mount()
よりも前に記載する必要がある。
レメディオ
最後は、とっても簡単にできましたね!お疲れ様でした。
サムネイル付きのカルーセルスライダー作成のまとめ
Splide.jsでサムネイル付きのカルーセルスライダーを作成する手順をまとめました。
全体のポイントをおさらいして終わりにしましょう!
- どのスライドが選択されているのか分かるようにする。
.splide__slide.is-active
の時の対応
- モバイル端末では
100px
だと少し大きいので調整。breakpoints
を設定
- 現在選択されているスライドは、中央に表示する。
focus
を'center'
に設定。
- 各スライドをクリック可能にするため、
isNavigation
をtrue
に設定。
id
をサムネイルスライダーと別の名前にする。(id="main-carousel")
- fadeスライドを作成したいので、
type: 'fade'
を指定する。
Splide#sync()
メソッドは、Splide#mount()
よりも前に記載する必要がある。