スライダーはスライドが切り替わるだけでなく、常に定速で流れ続ける無限ループスライダーも作る事が出来ます。
今回は、Swiperを使って無限ループスライダーを作る方法を、コードとサンプル(デモ)を使って解説していきます(逆方向も可能)
Swiperの基本的な使い方についてはこちらの記事を参照下さい。
【2024年最新Ver11】Swiperの使い方とよく使うオプション・カスタマイズ方法を解説
続きを見る
またSwiperには色々カスタマイズが出来るオプションがあるので、そちらも合わせて活用すると実装出来るスライダーの幅が広がります。
【Swiper】カスタマイズ用オプションまとめ一覧
続きを見る
(有料になっていたらすいません🙇♂️)
Swiperで横方向に流れ続ける無限ループスライダーを作る方法
まずは、基本となるスライダーを見てみましょう。
See the Pen
Swiper(矢印、ドットインジケーター) by junpei (@junpei-sugiyama)
on CodePen.
今回は無限ループスライダーなので、矢印とページネーションは削除します。
HTMLのコード
HTMLは注意が必要です。
これはバージョン8系のときは表示数分で大丈夫でしたが、バージョン9系では倍の枚数を書かないといけなくなりました。
HTMLの書き方はこちら。
<!-- バージョン8系はこの書き方 -->
<div class="swiper">
<div class="swiper-wrapper">
<div class="swiper-slide">
<img src="画像パス1" alt="" />
</div>
<div class="swiper-slide">
<img src="画像パス2" alt="" />
</div>
<div class="swiper-slide">
<img src="画像パス3" alt="" />
</div>
</div>
</div>
<!-- バージョン9系はこの書き方 -->
<div class="swiper">
<div class="swiper-wrapper">
<div class="swiper-slide">
<img src="画像パス1" alt="" />
</div>
<div class="swiper-slide">
<img src="画像パス2" alt="" />
</div>
<div class="swiper-slide">
<img src="画像パス3" alt="" />
</div>
<div class="swiper-slide">
<img src="画像パス1" alt="" />
</div>
<div class="swiper-slide">
<img src="画像パス2" alt="" />
</div>
<div class="swiper-slide">
<img src="画像パス3" alt="" />
</div>
</div>
</div>
CSSのコード
CSSの書き方はこちら。
/* スライドの動き等速 */
.swiper-wrapper {
transition-timing-function: linear;
}
/* 画像のサイズ調整 */
.swiper-slide img {
height: auto;
width: 100%;
}
CSSのポイントは、スライドの動きを等速にする transition-timing-function: linear;
ですね。
これがないと、等速で流れ続けるというスライダーにはなりません。
JavaScriptのコード
JavaScriptの書き方はこちら。
const swiper = new Swiper(".swiper", {
loop: true, // ループ有効
slidesPerView: 3, // 一度に表示する枚数
speed: 6000, // ループの時間
allowTouchMove: false, // スワイプ無効
autoplay: {
delay: 0, // 途切れなくループ
},
});
こちらは基本形と全然違うので、1つずつ解説していきます。
loop
slidesPerView
speed
allowTouchMove
delay
無限ループスライダーサンプル(デモ)
そしてこちらが無限ループスライダーのサンプル(デモ)になります。
See the Pen
Swiper(無限ループ) by junpei (@junpei-sugiyama)
on CodePen.
Swiperスライダーを逆方向に無限ループ
無限ループスライダーはデフォルトでは右から左に流れますが、逆方向にしたい時もあると思います。
逆方向にするのは簡単で、autoplayのオプションに1行追加するだけでOKです。
const swiper = new Swiper(".swiper", {
loop: true, // ループ有効
slidesPerView: 3, // 一度に表示する枚数
speed: 6000, // ループの時間
allowTouchMove: false, // スワイプ無効
autoplay: {
delay: 0, // 途切れなくループ
reverseDirection: true, // 逆方向有効化
},
});
最後の reverseDirection: true,
ですね。
デフォルトはfalseとなっているので、trueにして逆方向を有効化します。
こちらがサンプル(デモ)になります。
See the Pen
Swiper(無限ループ:逆方向) by junpei (@junpei-sugiyama)
on CodePen.
まとめ
今回は、Swiperで横方向に流れ続ける無限ループスライダーの作り方を解説しました。
同じくslickの無限ループスライダーも逆方向にすることは出来ますが、Swiperと違いオプションに追加するだけではないので注意が必要ですね。
実務ではデフォルトの方向と逆方向の両方を使う事もあるので、ぜひ実装出来るようになっておきましょう。
以上になります。
関連記事slick記事一覧
関連記事Swiper記事一覧
関連記事Splide記事一覧