インストール方法は3種類あります。
<link
rel="stylesheet"
href="https://cdn.jsdelivr.net/npm/swiper@9/swiper-bundle.min.css"
/>
<script src="https://cdn.jsdelivr.net/npm/swiper@9/swiper-bundle.min.js"></script>
$ npm install swiper
また、typescriptをお使いの方は以下のコマンドも叩いてください。
$ npm install --save-dev @types/swiper
もう一つ、ファイルをダウンロードして使用する方法もあるのですが今回は割愛とします。興味のある方はご自身でお調べになってください。
では、インストールが完了できたと思うので早速Swiperを使ったスライダーを作っていきましょう。
まずはHTMLです。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>Swiper</title>
<!-- CDNを使う場合のみ記述 -->
<link
rel="stylesheet"
href="https://cdn.jsdelivr.net/npm/swiper@9/swiper-bundle.min.css"
/>
</head>
<body>
<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>
<!-- CDNを使う場合のみ記述 -->
<script src="https://cdn.jsdelivr.net/npm/swiper@9/swiper-bundle.min.js"></script>
</body>
</html>
こちらが基本の作りです。.swiper
.swiper-wrapper
.swiper-slide
の3つは必須です。.swiper-wrapper
と .swiper-slide
の間に「他の要素を割り込ませたりするとうまく動かなくなる」のでご注意ください。
次にJavaScriptの記述です。
// npmでインストールした場合のみ記述
import Swiper from "swiper";
import "swiper/swiper-bundle.css";
// -----------------------------------------
const mySwiper = new Swiper('.swiper', {
// この中にオプションを書いていく。
});
ここまで行うとスライダーが動き出します!
ここからオプションについて記述していくのですが数が膨大のため私がよく使うオプションだけを抜粋して書きます。
<div class="swiper">
<div class="swiper-wrapper">
<!-- 省略 -->
</div>
<div class="swiper-pagination"></div><!-- 追加 -->
</div>
// npmでインストールした場合、以下の2行を記述しないといけないので注意
import Swiper, { Pagination } from "swiper";
Swiper.use([Pagination]);
// ----------------------------------------------------
const mySwiper = new Swiper('.swiper', {
pagination: {
el: ".swiper-pagination",
clickable: true, // クリックを可能にする
},
});
<div class="swiper">
<div class="swiper-wrapper">
<!-- 省略 -->
</div>
<div class="swiper-button-prev"></div><!-- 追加 -->
<div class="swiper-button-next"></div><!-- 追加 -->
</div>
// npmでインストールした場合、以下の2行を記述しないといけないので注意
import Swiper, { Navigation } from "swiper";
Swiper.use([Navigation]);
// ----------------------------------------------------
const mySwiper = new Swiper('.swiper', {
navigation: {
nextEl: ".swiper-button-next",
prevEl: ".swiper-button-prev",
},
});
スライドのスピードを設定できます。デフォルトでは300です。
const mySwiper = new Swiper('.swiper', {
speed: 500
});
簡単です。下記コードをつけるだけです。
const mySwiper = new Swiper('.swiper', {
loop: true
});
デフォルトでは自動再生されないので、させたい場合はオプションを書く必要があります。
// npmでインストールした場合、以下の2行を記述しないといけないので注意
import Swiper, { Autoplay } from "swiper";
Swiper.use([Autoplay]);
// ----------------------------------------------------
const mySwiper = new Swiper('.swiper', {
autoplay: true,
});
パラメータを追記して細かい設定をすることも可能です。
const mySwiper = new Swiper('.swiper', {
autoplay: {
delay: 1500, // (デフォルトは3000)1.5秒後に次のスライド
disableOnInteraction: false, // 矢印またはページネーションをクリックしても自動再生を止めない
}
});
指定した枚数分がコンテナ内に収まるように調整される。
const mySwiper = new Swiper('.swiper', {
slidesPerView: 3 // デフォルトでは1
});
小数点以下の値も指定可能(2.8などの小数を指定すると左右にはみ出たスライダが実装できる)。
CSSでサイズ調整したい場合は‘auto’
を指定。
主に、slidesPreView
の値が小数を指定したときに使用します。
const mySwiper = new Swiper('.swiper', {
centeredSlides: true,
slidesPerView: 1.4
});
デバイスのサイズによってslidesPreView
の数を変えたいときなどに使います。
const mySwiper = new Swiper('.swiper', {
breakpoints: {
// デバイスが320px以上の時
320: {
slidesPerView: 1.4
},
// デバイスが640px以上の時
640: {
slidesPerView: 2.8
}
},
slidesPerView: 1,
centeredSlides: true
});
CSSで margin を付けるとスライドの位置がずれていくことがあるため、こちらで指定するのが推奨。
const mySwiper = new Swiper('.swiper', {
spaceBetween: 40 // px
});
先ほども記載しましたが、ここに記載したオプションは本の一部で、僕自身がよく使うものだけ取り上げさせていただきました。なので、ご興味がある方は各自で調べてみてください。また、Jqueryに依存せず使えることやオプションが多くカスタマイズ性が豊かなポイントもグッドです。
皆さんもよければSwiperを使ってみてくださいね。