Splideのスライダーで画像の高さが違う場合に、スライドを上下中央にする方法を解説します。
Splideの基本的な使い方についてはこちらの記事を参照下さい。
【最新】Splideスライダーの使い方とオプション一覧・カスタマイズ方法を解説
続きを見る
(有料になっていたらすいません🙇♂️)
Splideで高さがバラバラのスライドを上下中央にする方法
まずは基本となるスライダーを見てみます(パソコンの場合は左上のHTML・CSS・JSをクリックすると分かりやすいです)
See the Pen
Untitled by junpei (@junpei-sugiyama)
on CodePen.
前後の矢印の位置は一番高いスライドの上下中央になっていて、スライドが変わって高さが変わっても位置は変わりません。
このスライドを上下中央になるようにしたいと思います。
コード解説
HTMLは基本形と同じで、JavaScriptも上下中央に関わるオプションはありませんが、一応載せておきます。
HTML
まずHTMLはこちらです。
<div
class="splide"
role="group"
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>
これは基本形と同じです。
CSS
CSSはこちらです。
/* スライダーのサイズ調整 */
.splide__track {
height: 40vw;
max-height: 600px; /* 最大の高さ */
min-height: 400px; /* 最小の高さ */
}
/* スライダーを上下中央 */
.splide__slide {
display: flex;
justify-content: center; /* 左右の中央揃え */
}
/* スライドのサイズ調整 */
.splide__slide img {
align-self: center; /* 上下の中央揃え */
max-height: 100%;
max-width: 100%;
width: auto;
}
スライダー全体の高さは調整可能ですが、align-self: center;
がないと画像が潰れてしまうので注意しましょう。
上下左右を中央揃えにするのはdisplay: flex;
を使っています。
JavaScript
そしてJavaScriptはこちらです。
const splide = new Splide(".splide", {
autoplay: true, // 自動再生
type: "loop", // ループ
pauseOnHover: false, // カーソルが乗ってもスクロールを停止させない
pauseOnFocus: false, // 矢印をクリックしてもスクロールを停止させない
interval: 2000, // 自動再生の間隔
speed: 1000, // スライダーの移動時間
}).mount();
これは今回の上下中央に関係するオプションはありません。
デモ
そしてこちらがデモになります。
See the Pen
Untitled by junpei (@junpei-sugiyama)
on CodePen.
まとめ:Splideで高さがバラバラのスライドを上下中央にするには『display: flex;』を使う
今回はSplideの高さがバラバラのスライドを上下中央にする方法について解説しました。
なるべくなら画像のサイズは揃えた方がいいですが、縦写真と横写真など画角を揃えるのが難しいフォトギャラリーなどで重宝するかと思います。
以上になります。
関連記事slick記事一覧
関連記事Swiper記事一覧
関連記事Splide記事一覧