Swiperの前へ次への矢印は、公式サイトにあるHTMLでは内側になります。
そして、これをCSSでどうにかしようにも、下に潜ってしまって外に出てくれません。
今回は、この矢印をスライダーの外側に出す方法を解説していきます。
Swiperの基本的な使い方についてはこちらの記事を参照下さい。
【2024年最新Ver11】Swiperの使い方とよく使うオプション・カスタマイズ方法を解説
続きを見る
またSwiperには色々カスタマイズが出来るオプションがあるので、そちらも合わせて活用すると実装出来るスライダーの幅が広がります。
【Swiper】カスタマイズ用オプションまとめ一覧
続きを見る
(有料になっていたらすいません🙇♂️)
Swiperスライダーの矢印やページネーションを外に出す方法
まずは、基本となるスライダーを見てみましょう。
See the Pen
Swiper(矢印、ドットインジケーター) by junpei (@junpei-sugiyama)
on CodePen.
この矢印を、CSSで外側に移動するとどうなるか、スライダーの幅を狭くして見てみます。
See the Pen
Swiper(矢印内側) by junpei (@junpei-sugiyama)
on CodePen.
右側の矢印だけ移動してみましたが、下に潜ってしまいました。
ページネーションも同様で、z-index
の数値を上げても上には出てきません。
この問題を解決するには、HTMLの構造から変える必要があります。
HTMLのコード
元々のHTMLの書き方はこちらになります。
<div class="swiper">
<div class="swiper-wrapper">
<div class="swiper-slide">
<img src="画像パス" alt="" />
</div>
<div class="swiper-slide">
<img src="画像パス" alt="" />
</div>
<div class="swiper-slide">
<img src="画像パス" alt="" />
</div>
</div>
<!-- ページネーション -->
<div class="swiper-pagination"></div>
<!-- 前後の矢印 -->
<div class="swiper-button-prev"></div>
<div class="swiper-button-next"></div>
</div>
これを以下のようにします。
<div class="container">
<div class="swiper">
<div class="swiper-wrapper">
<div class="swiper-slide">
<img src="画像パス" alt="" />
</div>
<div class="swiper-slide">
<img src="画像パス" alt="" />
</div>
<div class="swiper-slide">
<img src="画像パス" alt="" />
</div>
</div>
</div>
<!-- ページネーション -->
<div class="swiper-pagination"></div>
<!-- 前後の矢印 -->
<div class="swiper-button-prev"></div>
<div class="swiper-button-next"></div>
</div>
.swiper
の中にあった矢印とページネーションを .swiper と同じ階層に移動しました。
そして基本形では .swiper
が大枠でしたが、同じ階層に矢印とページネーションを移動してきたので、それら全体を .container というclassで囲みました(.container のclass名は任意です)。
この状態で、一度どうなっているか見てみます。
See the Pen
Swiper(矢印外側) by junpei (@junpei-sugiyama)
on CodePen.
特に問題はないかと思います。
CSSのコード
それでは、本題である矢印やページネーションを外に出していきます。
CSSの書き方はこちら。
.container {
margin-inline: auto;
max-width: 500px;
position: relative;
}
.swiper {
max-width: 500px;
}
.swiper-slide img {
height: auto;
width: 100%;
}
ここでは元々の大枠である .swiper
と、現在の大枠である .container
の max-width
を同じ数値にしています。
あとは、.container
に position: relative;
を設定しています(これがないと矢印が画面の両端に行ってしまう為)。
この状態では、矢印とページネーションが上に出てきたか分からないので、この状態から画像の外側に移動してみます。
矢印とページネーションを外に出すCSSはこちら。
/* 前への矢印 */
.swiper-button-prev {
left: -30px;
}
/* 次への矢印 */
.swiper-button-next {
right: -30px;
}
/* ページネーション */
.swiper-pagination-bullets.swiper-pagination-horizontal {
bottom: -25px;
}
サンプル(デモ)
こちらがサンプル(デモ)になります。
See the Pen
Swiper(矢印外側2) by junpei (@junpei-sugiyama)
on CodePen.
矢印とページネーションが、スライダーの外側に出ています。
まとめ
今回は、Swiperスライダーで矢印やページネーションを外に出す方法を解説しました。
公式サイトの書き方では、矢印が外に出せないのが困り物ですね。。。
今回ご紹介した書き方をぜひ覚えて、活用して下さい。
以上になります。
関連記事slick記事一覧
関連記事Swiper記事一覧
関連記事Splide記事一覧