🗡️

Swiperの基本知識

2025/01/07に公開

前書き

Swiperを実装する際に知っておくべき基本知識を整理しました。
これらを理解しておけば、Swiperの実装がスムーズになると思います。

1️⃣ Swiperの基本構造

Swiperを使うには、以下の基本的な構造を知る必要があります:

HTMLの基本構造

<div class="swiper">
  <div class="swiper-wrapper">
    <div class="swiper-slide">スライド1</div>
    <div class="swiper-slide">スライド2</div>
    <div class="swiper-slide">スライド3</div>
  </div>
  <!-- 必要に応じてナビゲーションやページネーションを追加 -->
  <div class="swiper-pagination"></div>
  <div class="swiper-button-prev"></div>
  <div class="swiper-button-next"></div>
</div>

CSS(基本スタイル)

Swiperは独自のスタイルを持ちますが、以下を適切に設定することが重要です:

.swiper {
  width: 100%;
  height: 100%;
}
.swiper-slide {
  text-align: center;
  font-size: 18px;
  background: #fff;
  display: flex;
  justify-content: center;
  align-items: center;
}

2️⃣ Swiperのインストール方法

CDN(簡易セットアップ)

  • HTMLに以下を追加:
<!-- Swiper CSS -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/swiper@10/swiper-bundle.min.css">
<!-- Swiper JS -->
<script src="https://cdn.jsdelivr.net/npm/swiper@10/swiper-bundle.min.js"></script>

npmを使用したインストール

npm install swiper

その後、JavaScriptでインポート:

import Swiper from 'swiper';
import 'swiper/swiper-bundle.css';

3️⃣ Swiperの初期化

Swiperを動作させるには、JavaScriptで初期化する必要があります:

const swiper = new Swiper('.swiper', {
  // オプション
  direction: 'horizontal', // 水平スライダー
  loop: true,              // ループ有効化
  autoplay: {
    delay: 3000,           // 自動再生の間隔
  },
  pagination: {
    el: '.swiper-pagination',
    clickable: true,       // ページネーションのクリック有効化
  },
  navigation: {
    nextEl: '.swiper-button-next',
    prevEl: '.swiper-button-prev',
  },
});

4️⃣ 主要オプション

基本オプション

オプション 説明 デフォルト値
direction スライダーの方向 (horizontal/vertical) horizontal
loop スライドのループ有効化 false
autoplay 自動再生を設定 オブジェクト
speed スライドの速度(ms) 300

ナビゲーション

オプション 説明
pagination.el ページネーション要素のセレクタ
pagination.clickable ページネーションをクリック可能にするか
navigation.nextEl 「次へ」ボタンのセレクタ
navigation.prevEl 「前へ」ボタンのセレクタ

レスポンシブ対応

以下のようにブレークポイントごとに設定を変更可能:

breakpoints: {
  640: {
    slidesPerView: 1, // 表示するスライド数
    spaceBetween: 10, // スライド間のスペース
  },
  768: {
    slidesPerView: 2,
    spaceBetween: 20,
  },
  1024: {
    slidesPerView: 3,
    spaceBetween: 30,
  },
},

5️⃣ Swiperの拡張機能

  • Lazy Loading(遅延読み込み)
const swiper = new Swiper('.swiper', {
  lazy: true, // 遅延読み込み有効化
});
  • エフェクト
const swiper = new Swiper('.swiper', {
  effect: 'fade', // フェードエフェクト
});
エフェクトタイプ 説明
fade フェード
cube キューブ
coverflow カバーフロー

6️⃣ トラブルシューティング

1. Swiperが動作しない

  • CSSやJSが正しく読み込まれているか確認。
  • Swiperの初期化が正しいか確認。

2. スタイルが崩れる

  • .swiper や .swiper-slide に正しいCSSが適用されているか確認。

3. ページネーションやナビゲーションが機能しない

  • HTML構造とセレクタが正しいか確認。

参考

https://b-risk.jp/blog/2022/04/swiper/

https://www.youtube.com/watch?v=12rPUl_lwlQ

Discussion