Swiperのページネーションを外に出す方法

Swiper
記事内に商品プロモーションを含む場合があります。

Swiperのページネーションを外に出したい。

実務でよくあるのが、下のようにページネーションがスライド画像の外側に設置されたデザインです。

しかし、CSSだけで調整しようと思っても、ページネーションが隠れてしまって表示されません。

そこで今回は、Swiperを使ってページネーションを外に出す方法を解説します。

なお、Swiperの基本的な使い方については、下の記事で詳しく解説していますので、必要に応じて参考にしてください。

スポンサーリンク

Swiperのページネーションを外に出す方法

Swiperのページネーションを外に出すには、次の3ステップで行います。

  1. swiperを別のdivで囲む
  2. ページネーションをswiperクラスの外に出す
  3. CSSで位置を調整する

順番に解説します。

swiperを別のdivで囲む

ページネーションを外に出すには、始めにswiper全体を別のdivで囲みましょう

こちらのdivタグには、後でCSSを当てるので、「swiper-container」のようなクラス名を付けておいてください(名前は任意です)。

<!-- swiperをswiper-containerで囲む -->
<div class="swiper-container">
  <div class="swiper">
    <div class="swiper-wrapper">
      <div class="swiper-slide">
        <div class="card card1"></div>
      </div>
      <div class="swiper-slide">
        <div class="card card2"></div>
      </div>
      <div class="swiper-slide">
        <div class="card card3"></div>
      </div>
    </div>
    <div class="swiper-pagination"></div>
  </div>
</div>

ページネーションをswiperクラスの外に出す

次に、ページネーションをswiperクラスの外に出します

やり方は簡単で、「swiper-pagination」と書かれた一行を1段下げ、swiperクラスと同階層にすればOKです。

<div class="swiper-container">
  <div class="swiper">
    <div class="swiper-wrapper">
      <div class="swiper-slide">
        <div class="card card1"></div>
      </div>
      <div class="swiper-slide">
        <div class="card card2"></div>
      </div>
      <div class="swiper-slide">
        <div class="card card3"></div>
      </div>
    </div>
  </div>
  <!-- ページネーションをswiperの外に出す -->
  <div class="swiper-pagination"></div>
</div>

これで準備が整いましたので、あとはCSSでページネーションの位置決めを行います。

CSSで位置を調整する

まずは、先ほど作成したswiperの親クラス(swiper-container)にposition: relative;を指定します。

これは、HTMLの構造を変えたことでページネーションの位置を決める「起点」がなくなってしまったからで、あらたにposition: relative;を指定するとswiper-containerクラスがページネーションの位置を決める「起点」となります。

/*親コンテナのpositionをrelativeにする*/
.swiper-container {
  position: relative;
}

あとは、ページネーションの位置をtopやbottom、left、rightで調整しましょう。

たとえば、下から40pxの位置に表示したければ、次のように指定すればOKです。

.swiper-pagination {
  bottom: -40px !important;
}

ページネーションは、swiperの外側でもちゃんと表示されます。

See the Pen swiper_pagination_outside by たけち (@kwxteqls-the-scripter) on CodePen.

なお、Swiperのページネーションに関するカスタマイズは、下の記事でも紹介しているので参考にしてください。