Swiper Web制作 スライダー

【2024年最新Ver11】Swiperの使い方とよく使うオプション・カスタマイズ方法を解説

2022年4月3日

※ 当サイトではアフィリエイト広告を利用しています

スライダーってどうやって作ればいい?

Web制作では、スライダーの実装は非常に良くある実装の1つです。

このブログでは、slickSplideというプラグインを使った実装を多くご紹介していますが、もう1つ有名なスライダープラグインがあります。

それが、Swiperです。

今回は、Swiperを使った基本的なスライダーの実装方法を解説していきます。

じゅんぺいブログは、Web制作コーディングWordPress制作)の技術記事を中心に、約500記事公開しています。ぜひ他の記事も参考にしてみてください!
完全無料のプログラミングスクール『ZeroPlus Gate』
30日間でWeb制作を学べる無料のプログラミングスクールがこちら
いきなり数十万するプログラミングスクールは厳しい・・・という人のお試しに最適です。
現在は無料ですがいつ有料になるか分からないので、気になる方はお早めに👇
(有料になっていたらすいません🙇‍♂️)

\ 完全無料 /

ZeroPlus Gate公式サイト

毎日先着制!

スライダープラグイン『Swiper』とは?

Swiper公式サイト

Swiper公式サイト

Swiperとは、スライダーが作れるJavaScriptのプラグインになります。

スライダーを実装する場合は、自作よりこういったプラグインを使うと簡単です。

スライダーを実装するときは、『Swiper』か『slick』を使う人が多いと思いますが、最近では『Splide』も人気があるようです。

当ブログではどのスライダーの記事もたくさんあるので、分からない実装があれば参考にしてみて下さい。

関連記事slick記事一覧
関連記事Swiper記事一覧
関連記事Splide記事一覧

 

Swiper・slick・Splideの違いを比較

スライダー系プラグインとして有名な3つですが、以下のような違いがあります。

ライブラリ名(プラグイン名)slick(1.8.1)Swiper(11.1.14)Splide(Ver4.1.3)
jQuery依存(必要)非依存(不要)非依存(不要)
jsの容量43KB+90KB(jQuery3.6.3)225KB30KB
エフェクトスライドとフェード7種類スライドとフェード
パララックスなしありなし
スワイプのしやすさほぼ真横の必要あり多少斜めでもOK多少斜めでもOK
更新頻度最終更新2017年9月高頻度 (最終更新2024年9月)高頻度 (最終更新2022年9月)
公式ドキュメント英語英語日本語

そしてSwiperと同じくらい有名なスライダー系のプラグインのslickですが、大きな違いはjQuery依存か非依存かとなります。

そしてSwiperはjQuery非依存なので、jQueryなしでも使用可能です。

また、Swiperはslickにはない様々なエフェクトが用意されています。

エフェクトを使ったSwiperの実装は、以下の記事を参照下さい。

あわせて読みたい
【Swiper】スライダーのエフェクトまとめ
【Swiper】スライダーのエフェクトまとめ【コードとサンプル付き】

続きを見る

 

Swiperのメリット

Swiperのメリット

  • jQueryに依存しない
  • 利用者が多く分からないことは調べればすぐ分かる
  • スワイプしやすい(slickに比べて)
  • オプションの数が多くカスタマイズ性が高い
  • 更新頻度が高い

 

jQueryに依存しない

これはslickとの違いでも書きましたが、SwiperはjQuery不要なので、jQueryが使えない案件でも使えます。

 

利用者が多く分からないことは調べればすぐ分かる

スライダーは色々とカスタマイズすることが多いですが、Swiperは利用者が多いので調べれば大抵のことはすぐ分かります。

当ブログでもSwiperの記事はたくさんあるので、ぜひ参考にしてみて下さい。

 

スワイプしやすい(slickに比べて)

slickはほぼ真横にスワイプしないとスライドが切り替わりませんが、Swiperは多少斜めにスワイプしても切り替わります。

スマホで試してみると分かると思うので、ぜひ試してみて下さい。

まずはslickがこちら。

See the Pen
Untitled
by junpei (@junpei-sugiyama)
on CodePen.

そしてこちらがSwiperです。

See the Pen
Swiper(矢印、ドットインジケーター、スクロールバー)
by junpei (@junpei-sugiyama)
on CodePen.

 

オプションの数が多くカスタマイズ性が高い

Swiperはオプションの数が豊富なので、カスタマイズ性が非常に高いです。

Swiperのオプションについては、以下の記事で詳しく解説しています。

あわせて読みたい
【Swiper】カスタマイズ用オプションまとめ一覧
【Swiper】カスタマイズ用オプションまとめ一覧

続きを見る

 

更新頻度が高い

slickは2017年10月から5年以上更新されていませんが、Swiperは今でも高頻度で更新を続けています。

slickは7年以上も更新していないので、ちょっと不安になりますね・・・

最近人気のSplideも、2024年10月の時点で最終更新が2022年9月となっています。

 

Swiperのデメリット

Swiperのデメリット

  • 公式ドキュメントが英語
  • 容量が大きい
  • オプションが多すぎて全てを使いこなすのは難しい

 

公式ドキュメントが英語

公式サイトに載っているドキュメントが英語なので公式サイトで使い方を知るのはちょっと難しいかも知れませんが、当ブログを含め使い方を解説しているブログなどは多いため、普通に使う分には困らないと思います。

Swiper公式サイト

 

容量が大きい

slick、そしてもう一つのスライダーライブラリSplideとjsファイルの容量で比較してみます。

ライブラリ名バージョン容量
Splide4.1.330KB
slick1.8.143KB+90KB(jQuery3.6.3)
Swiper11.1.14225KB

Splideと比べると、7倍以上となっています。

 

オプションが多すぎて全てを使いこなすのは難しい

オプションが多くてカスタマイズ性が高いのはメリットですが、同時に多すぎて使いこなすのが難しいとも言えます。

ただし全てのオプションを理解する必要はないので、よく使うものだけいつでも使えるようにしておけばOKです。

 

Swiperの導入方法

それでは、早速Swiperを使ってスライダーを作っていきましょう。

手順は以下のようになります。

Swiper導入の流れ

  • 必要なファイルをDLして読み込む or CDNでライブラリを読み込む
  • HTMLでスライダーを動かすのに必要なclassを付けながらコードを書く
  • JavaScriptを書く

あとは必要に応じてCSSで調整したり、JavaScriptにオプションを書いていきます。

 

Swiperのインストール方法①:CDNでライブラリを読み込む

Swiperを使うには、主に2つの方法があります。

『ファイルをDLする』か『CDNでライブラリを読み込む』の2つの方法になります。

まずはCDNの方ですが、以下のコードをheadタグとbody閉じタグ直前に書きます。

<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.css"/>
<script src="https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.js"></script>

CSSの方はheadタグ、JavaScriptの方はbody閉じタグ直前に書きましょう。

<!DOCTYPE html>
<html lang="ja">
  <head>
    <title>タイトル</title>
    <link
      rel="stylesheet"
      href="https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.css"
    />
  </head>
  <body>
    <main></main>
    <footer></footer>
    <script src="https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.js"></script>
  </body>
</html>

CDNの最新バージョンはこちらに載っているので、コピーして使いましょう。

https://swiperjs.com/get-started#use-swiper-from-cdn

CDNの記載場所

CDNの記載場所

 

Swiperのインストール方法②:ファイルをダウンロード

ファイルをDLして読み込みたい場合は、以下にアクセスしてコードをコピーして下さい。

右上にある『View Raw』をクリックすれば、コードが全部表示されます。

swiper-bundle.min.css

swiper-bundle.min.js

注意ポイント

上記は2024年10月1日現在の最新バージョン11.1.14が表示されます。

上記URLからアクセスした際は最新版を選択するようにしましょう。

 

Swiperの基本的な書き方

Swiperを使う準備ができたら、次はコードを書いていきます。

 

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>

画像が3枚あるスライダーです。

slickと違い、class名を変えると動かないのでご注意ください。

注意ポイント

今回はバージョン11を使用していますが、Ver6からVer7に変わった際にこの動作に関わるclass名が"swiper-container"から"swiper"に変わり、スライダーが急に動かなくなったとX(Twitter)上でも軽い騒ぎになりました。なのでVerには最新の注意を払うか、CDNではなくファイルをDLして読み込むようにしましょう。

ただし、試しに一番大枠のswiperのclass名はJavaScriptも同様に変えれば動きました・・・が、上記のような騒動もあったのでなるべくclass名は公式ページに書いてある通りにしておきましょうswiper-wrapperswiper-slide は変えたら動かなくなりました)

 

CSSの書き方

CSSの書き方はこちら。

.swiper-slide img {
  height: auto;
  width: 100%;
}

これは書かなくても動きますが、とりあえず画像サイズだけ整えておきます。

 

JavaScriptの書き方

最後にJavaScriptを書きます。これも一旦最小限のコードにします。

const swiper = new Swiper(".swiper", {});

ここまで書けたら、一旦スライダーが機能するか試してみましょう。

 

基本となるスライダーのサンプル(デモ)

ここまでのコードで実装したスライダーがこちら。

See the Pen
Swiper(最小限のコード)
by junpei (@junpei-sugiyama)
on CodePen.

一応動いてはいるので、Swiperは正常に機能しているという確認が出来ました(横にスワイプ・ドラッグしてみて下さい)。

あとは、もう少しカスタマイズしていきます。

 

Swiperでよく使うオプションとカスタマイズ方法

Swiperにはたくさんのオプションがありますが、よく使うオプションをご紹介します。

 

オプションの書き方(パラメータとモジュール)

オプションにはパラメータとモジュールがあり、似たようなものですが書き方が少し異なります。

const swiper = new Swiper(".swiper", {
  パラメータ名1: 設定値,
  パラメータ名2: 設定値,
  モジュール名1: {
    パラメータ名A: 設定値,
    パラメータ名B: 設定値,
  },
});

それでは、よく使うパラメータ・モジュールをまとめて解説していきます。

最後に、エフェクト以外全部設定したスライダーのサンプル(デモ)を載せています。

 

ループ

デフォルトでは最後のスライドが表示されたら行き止まりなので、これをずっとスライドさせ続けるにはloopを設定する必要があります。

const swiper = new Swiper(".swiper", {
  loop: true, // デフォルトはfalse
});

最後のスライドの次は、最初のスライドが表示されます。

ちなみに、無限ループのスライダーを作ることも可能です。

あわせて読みたい
【Swiper】横方向に流れ続ける無限ループスライダーを作る方法
【Swiper】横方向に流れ続ける無限ループスライダーを作る方法

続きを見る

 

前後の矢印(ナビゲーション)

次へ・前への矢印はHTMLで表示させ、JavaScriptで動作させます。

<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-button-prev"></div>
  <div class="swiper-button-next"></div>
</div>
const swiper = new Swiper(".swiper", {
  // 前後の矢印
  navigation: {
    nextEl: ".swiper-button-next",
    prevEl: ".swiper-button-prev",
  },
});

JavaScriptでモジュールを書かないと、表示はされても動かないのでご注意下さい。

この矢印はこのままだとスライダーの外には出せないので、スライダーの外に矢印を出す方法は、以下の記事を参照ください。

あわせて読みたい
【Swiper】スライダーの矢印やページネーションを外に出す方法
【Swiper】スライダーの矢印やページネーションを外に出す方法

続きを見る

また、矢印はデザインをカスタマイズすることも可能です。

あわせて読みたい
【Swiper】前へ次への矢印をカスタマイズする方法(画像変更も紹介)
【Swiper】前へ次への矢印をカスタマイズする方法(画像変更あり)

続きを見る

 

ドットインジケーター(ページネーション)

これはスライドの下に表示される●になります。

これも、HTMLとJavaScript両方書く必要があります。

<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>
const swiper = new Swiper(".swiper", {
  // ページネーション
  pagination: {
    el: ".swiper-pagination",
    clickable: true, // クリック有効化
  },
});

clickable: true,は必須ではありませんが、これを有効化しておくとドットをクリックすれば該当のスライドに遷移します。

このドットインジケーター(ページネーション)のカスタマイズ方法は、以下の記事を参照ください。

あわせて読みたい
【Swiper】スライダーのページネーション(ドット)をカスタマイズする方法
【Swiper】スライダーのページネーション(ドット)をカスタマイズする方法

続きを見る

 

スクロールバー

これはあまり使わないかも知れませんが、これも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-scrollbar"></div>
</div>
const swiper = new Swiper(".swiper", {
  // スクロールバー
  scrollbar: {
    el: ".swiper-scrollbar"
  },
});

 

自動再生

デフォルトでは自動再生されないので、させたい場合はオプションを書く必要があります。

const swiper = new Swiper(".swiper", {
  autoplay: true, // 自動再生
});

パラメータを追記して細かい設定をすることも可能です。

const swiper = new Swiper(".swiper", {
  autoplay: { // 自動再生
    delay: 1000, // 1秒後に次のスライド(初期値:3000)
    disableOnInteraction: false, // 矢印をクリックしても自動再生を止めない
  },
});

 

フェード(エフェクト)

エフェクトは何種類かありますが、特によく使うのがフェードです(デフォルトはスライド)。

const swiper = new Swiper(".swiper", {
  effect: 'fade', // フェード
});

他のエフェクトを見たい方は、以下の記事を参照ください。

あわせて読みたい
【Swiper】スライダーのエフェクトまとめ
【Swiper】スライダーのエフェクトまとめ【コードとサンプル付き】

続きを見る

 

レスポンシブ

これはブレイクポイントを指定してPCでは3枚、スマホでは1枚という感じで設定できます。

const swiper = new Swiper(".swiper", {
  // スライドの表示枚数
  slidesPerView: 1,
  breakpoints: {
    // スライドの表示枚数:500px以上の場合
    500: {
      slidesPerView: 3,
    }
  }
});

この場合は画面幅が500px以上でスライド3枚、500px未満でスライド1枚になります。

複数のブレイクポイントを指定してレスポンシブにする方法は、以下の記事を参照ください。

あわせて読みたい
【Swiper】ブレイクポイントを設定してレスポンシブ対応のスライダーを作る方法
【Swiper】ブレイクポイントを設定してレスポンシブ対応のスライダーを作る方法

続きを見る

 

オプションを詰め込んだサンプル(デモ)

そしてここまでの解説で、エフェクトのフェード以外を全て取り入れたのがこちらです。

See the Pen
Untitled
by junpei (@junpei-sugiyama)
on CodePen.

 

Swiperが動かない時の主な原因と対処方法

最後に、Swiperが動かないときの主な原因と対処方法を解説します。

  • SwiperのCSSとJavaScriptを読み込んでいない
  • ファイルを読み込む順番を間違えている
  • HTML、もしくはJavaScriptの片方しか書いていない
  • class名を変更してしまっている
  • オプションの最後にカンマ(,)が抜けている
  • ''(シングルクォーテーション)""(ダブルクォーテーション)が抜けている

 

SwiperのCSSとJavaScriptを読み込んでいない

これはファイルをダウンロードして読み込むかCDNで読み込みますが、これを書いていない、もしくはコードやファイルへのパスが間違っている可能性があります。

ファイルをダウンロードして読み込む場合は、ファイルへのパスが合っているか確認しましょう。

CSSとJavaScriptのどちらかが無いと動かないので、そこも注意しましょう。

 

ファイルを読み込む順番を間違えている

SwiperのCDNを読み込むコードと、自分でオプションなどを書いたファイルを読み込むコードがありますが、これは最初にCDNの方を読み込みましょう。

    <!-- SwiperのCDNファイル -->
    <script src="https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.js"></script>
    <!-- Swiperの設定ファイル -->
    <script src="js/main.js"></script>
  </body>
</html>

これが以下のようになっていると、動きません。

    <!-- Swiperの設定ファイル -->
    <script src="js/main.js"></script>    
    <!-- SwiperのCDNファイル -->
    <script src="https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.js"></script>
  </body>
</html>

 

HTML、もしくはJavaScriptの片方しか書いていない

これは実装する物によりますが、例えばページネーションや矢印などはHTMLにコードを書く必要があります。

そしてJavaScriptにもコードを書く必要があるので、片方書いていないと動きません(もしくは表示されない)。

 

class名を変更してしまっている

これは先ほど解説しましたが、class名は決められているので、変更しないようにしましょう。

 

オプションの最後にカンマ(,)が抜けている

これは見落とす可能性が高いですが、オプションが複数ある場合は、最後のオプション以外はカンマが必要です。

const swiper = new Swiper(".swiper", {
  loop: true,
  speed: 1500
});

上記の場合はloop: true,の部分になります。

これが、以下の場合だと動きません。

const swiper = new Swiper(".swiper", {
  loop: true
  speed: 1500
});

もしオプションが1つしかなければ、カンマはなくてもOKです。

const swiper = new Swiper(".swiper", {
  loop: true
});

逆に最後のオプションにもカンマはあっても問題ないので、基本的には全てカンマを入れておいた方がミスは防ぎやすいかと思います。

const swiper = new Swiper(".swiper", {
  loop: true,
  speed: 1500,
});

 

''(シングルクォーテーション)""(ダブルクォーテーション)が抜けている

オプションによっては、シングルクォーテーションかダブルクォーテーションが必要な場合があります。

例えば、エフェクトは以下のように書かないと動きません。

const swiper = new Swiper(".swiper", {
  effect: "fade",
});

このようにするとNGです。

const swiper = new Swiper(".swiper", {
  effect: fade,
});

他にも、スペルミスや書き間違えがないか落ち着いて確認していきましょう。

まとめ

今回は、Swiperの導入方法・書き方など、基本的な使い方について解説してきました。

少しご紹介したオプションなどを使えば、かなり幅広い実装が可能です。

今回ご紹介した実装例以外にも、以下の記事でたくさんの実装例を載せているので、ぜひ参考にしてみて下さい。

あわせて読みたい
Swiperスライダー実装まとめ23選【サンプル付き】
Swiperスライダー実装まとめ23選【サンプル付き】

続きを見る

以上になります。

関連記事slick記事一覧
関連記事Swiper記事一覧
関連記事Splide記事一覧

この記事が役に立ったと思ったら、シェアボタンからX(旧Twitter)などにシェアすると、いいねされてフォロワーが増えたりすることがあるよ!

 

  • この記事を書いた人

じゅんぺい

37歳からWeb制作とブログ開始。Web制作歴5年目でコーディングとWordPressオリジナルテーマ制作が中心。これまで120件以上を納品。当ブログ月間最高15万PVで、370記事以上はWeb制作の技術記事。コンテンツ販売→累計売上1200万円&1500部超え。X(旧Twitter)フォロワー7200人以上。2024年3月からブログの経験を活かしてライターとしても活動を開始。

-Swiper, Web制作, スライダー