スライダーにはスライドの枚数分小さい丸を表示出来ます。
これをページネーションと言いますが、デフォルトの小さい丸ではなくデザインをカスタマイズしたい時もあると思います。
そこで今回はページネーションをCSSと画像でカスタマイズする方法を解説していきます。
Splideの基本的な使い方についてはこちらの記事を参照下さい。
【最新】Splideスライダーの使い方とオプション一覧・カスタマイズ方法を解説
続きを見る
(有料になっていたらすいません🙇♂️)
Splideスライダーのページネーションをカスタマイズする方法
まずは基本となるスライダーを見てみましょう。
See the Pen
Splide:基本形 by junpei (@junpei-sugiyama)
on CodePen.
上記はデフォルトのページネーションになりますが、これをCSSで調整する方法と、画像を使う方法があります。
順番に解説していきますが、HTMLは共通で以下のようになります(基本形と同じです)
<div class="splide" aria-label="ページネーションのカスタマイズ">
<div class="splide__track">
<div class="splide__list">
<div class="splide__slide">
<img src="画像パス1" alt="" />
</div>
<div class="splide__slide">
<img src="画像パス2" alt="" />
</div>
<div class="splide__slide">
<img src="画像パス3" alt="" />
</div>
</div>
</div>
</div>
JavaScriptは共通でこちらになります。
new Splide(".splide", {
classes: {
pagination: "splide__pagination your-class-pagination",
page: "splide__pagination__page your-class-page",
},
}).mount();
上記のyour-class-pagination
とyour-class-page
は自由に変更して大丈夫なclass名ですが、splide__
接頭詞を持ったclassは変更不可です(splide__pagination
とsplide__pagination__page
)
そしてpagination
はページネーション全体で、page
はページネーション1つ1つの事になります。
ページネーションを削除(非表示)する方法
カスタマイズする前に、非表示にする方法もご紹介します(今回のカスタマイズでは書きません)
デフォルトでは最初のデモのように表示されるので、以下のようにオプションを書けば非表示になります。
new Splide(".splide", {
pagination: false, // ページネーションを非表示
}).mount();
CSSでカスタマイズ
それでは本題のページネーションのカスタマイズですが、CSSでカスタマイズする方法はこちらです。
/* ページネーションのスタイル */
.your-class-page {
background-color: #ccc;
height: 20px;
transition: .5s all;
width: 20px;
}
/* 現在表示されているページネーションのスタイル */
.your-class-page.is-active {
background-color: red;
opacity: 1;
}
/* ページネーションの位置 */
.your-class-pagination {
bottom: 1.5em;
}
/* ページネーション間の余白 */
.your-class-pagination li {
margin-left: 5px;
margin-right: 5px;
}
/* スライドのサイズ調整 */
.splide__slide img {
height: auto;
width: 100%;
}
デモはこちらになります。
See the Pen
Splide:ページネーションカスタマイズ(CSS) by junpei (@junpei-sugiyama)
on CodePen.
画像でカスタマイズ
次は画像でカスタマイズします。
/* ページネーションのスタイル */
.your-class-page {
background-color: transparent; /* 背景色を透明に */
background-image: url(画像パス①);
background-repeat: no-repeat;
background-size: contain;
border-radius: unset; /* これがないと画像が欠ける */
height: 30px;
opacity: 1; /* 画像の透過を無くす */
width: 30px;
}
/* 現在表示されているページネーションのスタイル */
.your-class-page.is-active {
background-color: transparent; /* 背景色を透明に */
background-image: url(画像パス②);
background-size: contain; /* これが無いと真っ白になる */
}
/* ページネーションの位置 */
.your-class-pagination {
bottom: 1.5em;
}
/* ページネーション間の余白 */
.your-class-pagination li {
margin-left: 5px;
margin-right: 5px;
}
/* スライドのサイズ調整 */
.splide__slide img {
height: auto;
width: 100%;
}
基本的な考えはCSSでカスタマイズと同じです。
画像は表示されていない画像とされている画像の2種類用意します。
デモはこちらになります。
See the Pen
Splide:ページネーションカスタマイズ(画像) by junpei (@junpei-sugiyama)
on CodePen.
ここも自由に画像を変えてOKなので、ぜひ試してみて下さい。
ページネーションの挿入位置を指定(上に表示)
最後にページネーションの挿入位置を指定する方法を解説します。
デフォルトでは下の方に挿入されるので、プレースホルダ(<ul class="splide__pagination"></ul>
)を入れます。
<div class="splide" aria-label="ページネーションの挿入する位置の指定">
<ul class="splide__pagination"></ul>
<div class="splide__track">
<div class="splide__list">
<div class="splide__slide">
<img src="画像パス1" alt="" />
</div>
<div class="splide__slide">
<img src="画像パス2" alt="" />
</div>
<div class="splide__slide">
<img src="画像パス3" alt="" />
</div>
</div>
</div>
<!-- 指定しない場合はここに挿入される -->
</div>
このコードでは上から2行目に書いていますが、下でも大丈夫です(今回は上に表示するので、分かりやすいように上に書いています)
あとはCSSで位置を調整するだけです。
今回は以下のようにしました。
/* ページネーションの位置を指定 */
.splide__pagination {
bottom: auto;
position: absolute;
top: 1em;
}
こちらがデモになります。
See the Pen
Untitled by junpei (@junpei-sugiyama)
on CodePen.
まとめ
今回はSplideでページネーションをカスタマイズする方法を解説してきました。
CSSでカスタマイズする方法と画像を使う方法があるので、ご自身の環境に合わせて使ってみて下さい。
以上になります。
関連記事slick記事一覧
関連記事Swiper記事一覧
関連記事Splide記事一覧