時給単価UP【3大特典付き】
コーディングテクニック集100選⋙

【解説】Swiperで上下複数行のスライダー作成方法【サンプルあり】

記事内に広告を含みます

パソ君
パソ君

・Swiperで上下複数行あるスライダーを作る方法ある?

こんな疑問にお答えします。

デザインによっては、下記みたいに上下複数行あるスライダーを実装することありますよね。

実はこれ、swiperでも実装可能です。

ジト
ジト

すぐにできるよ!

ということで、この記事では「Swiperで上下複数行のスライダー作成方法」について解説していきます!

swiper自体の作り方については下記記事を参考に↓

【簡単】Swiperの使い方|初心者向けに解説【オプション】
この記事でわかること

Swiperで上下複数行のスライダー作成方法

【解説】Swiperで上下複数行のスライダー作成方法【サンプルあり】

そんな上下複数行のスライダーサンプルがこちら↓

See the Pen swiper 複数行のグリッドスライダー by jito-coder (@jito-coder) on CodePen.

縦に2、横に2のスライダーになっていますよね。

<div class="swiper">
    <div class="swiper-wrapper">
        <div class="swiper-slide swiper-slide01">
            <img src="https://jito-site.com/wp-content/uploads/2023/01/1.png" alt="">
        </div>
        <div class="swiper-slide swiper-slide02">
            <img src="https://jito-site.com/wp-content/uploads/2023/01/2.png" alt="">
        </div>
        <!-- 省略 -->
    </div>
    <div class="swiper-pagination"></div>
    <div class="swiper-button-prev"></div>
    <div class="swiper-button-next"></div>
</div>
.swiper {
  height: 500px;
  width: 70%;
}
@media screen and (max-width: 1000px) {
  .swiper {
    height: 45vw;
  }
}

.swiper-slide {
  height: auto;
}
window.onload = function() {
    const swiper = new Swiper(".swiper", {
        slidesPerView: 2,
        spaceBetween: 10, 
        grid: {
            rows: 2,
        },
        pagination: {
            el: ".swiper-pagination",
        },
        navigation: {
            nextEl: ".swiper-button-next",
            prevEl: ".swiper-button-prev",
        },
    });
}

コードの中で重要な点がこちら↓

  • 通常通りswiper用のHTMLを組む
  • スライドの親要素の高さを指定
  • 反映スライド数と行数を指定
  • 余白を指定
  • スライド要素の高さをautoに

順に解説してきます。

➀:通常通りswiper用のHTMLを組む

まず通常通りswiper実行用のHTMLを組んでいきます。

<div class="swiper">
    <div class="swiper-wrapper">
        <div class="swiper-slide swiper-slide01">
            <img src="https://jito-site.com/wp-content/uploads/2023/01/1.png" alt="">
        </div>
        <div class="swiper-slide swiper-slide02">
            <img src="https://jito-site.com/wp-content/uploads/2023/01/2.png" alt="">
        </div>
        <!-- 省略 -->
    </div>
    <div class="swiper-pagination"></div>
    <div class="swiper-button-prev"></div>
    <div class="swiper-button-next"></div>
</div>

HTMLについては通常通りですね。

➁:スライドの親要素の高さを指定

次にスライドの親要素の高さを指定しましょう。

この高さに対して、複数行のスライド要素が入ることになります。

.swiper {
  height: 500px;
  width: 70%;
}
@media screen and (max-width: 1000px) {
  .swiper {
    height: 45vw;
  }
}

レスポンシブ対応する場合は「vw」で指定するのがおすすめ。

➂:反映スライド数と行数を指定

続いて複数行にするために、JavaScriptにてオプションを記述します。

  • 「slidesPerView」⇒横列数
  • 「gridのrows」⇒縦列数
window.onload = function() {
    const swiper = new Swiper(".swiper", {
        // 反映スライド数
        slidesPerView: 2,
        // 行数
        grid: {
            rows: 2,
        },
        pagination: {
            el: ".swiper-pagination",
        },
        navigation: {
            nextEl: ".swiper-button-next",
            prevEl: ".swiper-button-prev",
        },
    });
}

これで一度に横に2枚、縦に2列反映するスライダーが作成できました。

ただしこのままでは余白がないですね。。

➃:余白を指定

そしたらデザインにもよりますが、余白を作っていきましょう。

window.onload = function() {
    const swiper = new Swiper(".swiper", {
        // 余白
        spaceBetween: 10, 
        // 反映スライド数
        slidesPerView: 2,
        // 行数
        grid: {
            rows: 2,
        },
        pagination: {
            el: ".swiper-pagination",
        },
        navigation: {
            nextEl: ".swiper-button-next",
            prevEl: ".swiper-button-prev",
        },
    });
}

「spaceBetween」にてスライド同士の間隔を記述します。今回は10pxに指定しました。

ただしこのままでは、縦と横それぞれに余白ができてしまい段落落ちしてしまいます。。

下記のように崩れてしまう。

そこで最後にこのズレ対策をしていきます。

➄:スライド要素の高さをautoに

最後にすることは、スライド要素の高さを「auto」にすることです。

.swiper-slide {
  height: auto;
}

これで余白もできつつ、上下複数行のスライダーが実装できました!

行数を増やしたい場合は、オプションの数値を変えればOKです。

【解説】Swiperで上下複数行のスライダー作成方法【注意点】

Swiperにて上下複数行のスライダーを作る場合、注意点がいくつかあります。

それががこちら↓

  • スライド数
  • 「loop」オプション

順に解説してきます。

➀:スライド数

行数や列数によってスライド数が足りない場合があります。

すると下記のように空の要素がでちゃいます↓

空の要素を作りたくない場合は、要素の数に注意しましょう。

➁:「loop」オプション

複数行のスライダーを作る場合、「loop」オプションを「true」にするのはやめておきましょう。

というのも動きがおかしなってしまうため。。

【解説】Swiperで上下複数行のスライダー作成方法【サンプルあり】:まとめ

  • 通常通りswiper用のHTMLを組む
  • スライドの親要素の高さを指定
  • 反映スライド数と行数を指定
  • 余白を指定
  • スライド要素の高さをautoに
ジト
ジト

Swiperで上下複数行のスライダー作成する時はためしてみてね!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA