【Swiper】1ページに複数のスライダーを設置し、それぞれを個別に動かす方法
WEBサイトで、画像スライダーや投稿記事のスライダーなど1ページに複数のスライダーを配置したい場合が案件ではよくあります。
複数のスライダーを配置することは簡単なのですが、全てのスライダーが一緒の動きでなく、それぞれを個別に動かしたい場合は少しコードを追加する必要があります。
今回は、「1ページに複数のスライダーを設置し、それぞれを個別に動かす方法」について解説していきたいと思います。
画像スライダーを案件でよく使う人は、是非参考にしてみてください。
目次
【Swiper】複数のスライダーが同じ動きをするパターン
サンプルはこちら。
See the Pen
Untitled by webis (@webis-co)
on CodePen.
2つのスライダーのどちらも自動でループするようになっています。
これはJavaScriptで以下のように設定しているからです。
var mySwiper = new Swiper('.swiper-container', { // スライダーに関する記述が入ります。 });
スライダーが2つとも.swiper-containerを持っており、 同じ引数の値なので同じ動きをするのです。
【Swiper】複数のスライダーが個別の動きをするパターン
サンプルはこちら。
See the Pen
Untitled by webis (@webis-co)
on CodePen.
1つ目のスライダーは自動でループし、2つ目は手動でないとループしないようにしました。
先ほどのスライダーと違い、それぞれのスライダーが個別の動きをしています。
スライダーを個別に設定する原理は、まずHTMLに以下のように記述します。
<div class="swiper-container swiper-container1"> <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> <div class="swiper-container swiper-container2"> <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>
ポイントは、共通クラスであるswiper-containerの同階層に、swiper-container1やswiper-container2といった個別のクラスを追加することです。
クラスは区別が付ければなんでも大丈夫です。
HTMLにクラスを追加出来たら、JavaScriptに以下のようにコードを記述しましょう。
var mySwiper = new Swiper('.swiper-container1', { autoplay: { delay: 1000, stopOnLastSlide: false, disableOnInteraction: false, reverseDirection: false }, navigation: { nextEl: '.swiper-button-next', prevEl: '.swiper-button-prev' }, pagination: { el: '.swiper-pagination', type: 'bullets', clickable: true } }); var mySwiper = new Swiper('.swiper-container2', { navigation: { nextEl: '.swiper-button-next', prevEl: '.swiper-button-prev' }, pagination: { el: '.swiper-pagination', type: 'bullets', clickable: true } });
先ほど追加したswiper-container1とswiper-container2を引数にした関数を2つ用意し、それぞれにSwiperのコードを個別に記述してあげればOKです。
これで1ページに複数スライダーを設置しつつ、それぞれを個別に動かすことが出来ました!
まとめ
以上が、「1ページに複数のスライダーを設置し、それぞれを個別に動かす方法」でした。