当記事ではswiper.jsのエフェクトオプションを使用してカードスライダーを作成する方法を記します。
またcardsEffectで細かい調整を行う方法についても説明します。
通常のSwiper.jsでのスライダーの作成はご存じの前提で進めさせていただきますので、Swiper.jsを初めて使う方はこちらから先に参考いただければと思います。
Swiper.jsでスライダーを実装する
①通常のSwiperスライダーを作成
わかりやすいように、最初に通常のSwiperスライダーを作成して、そこから変更を加えていきます。
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/swiper@8/swiper-bundle.min.css">
<script src="https://cdn.jsdelivr.net/npm/swiper@8/swiper-bundle.min.js"></script>
<style>
.sample-slider{
width:50%;
}
.sample-slider img{
width: 100%;
}
</style>
<div class="swiper sample-slider">
<div class="swiper-wrapper">
<div class="swiper-slide"><img src="./img/sample1.png"></div>
<div class="swiper-slide"><img src="./img/sample2.png"></div>
<div class="swiper-slide"><img src="./img/sample3.png"></div>
<div class="swiper-slide"><img src="./img/sample4.png"></div>
</div>
<div class="swiper-pagination"></div>
<div class="swiper-button-prev"></div>
<div class="swiper-button-next"></div>
</div>
<script>
const swiper = new Swiper('.sample-slider', {
pagination: { //ページネーション(ドット)
el: '.swiper-pagination',
},
navigation: { //ナビゲーション(矢印)
nextEl: ".swiper-button-next",
prevEl: ".swiper-button-prev",
},
})
</script>
通常のスライダーができました。
②スライダーをカード型にする
スライダーをカード型にするには、オプションにeffect: “cards” を指定します。
ついでにカーソルも指定しておきます。
const swiper = new Swiper('.sample-slider', {
effect: "cards", //追加
grabCursor: true, //追加
pagination: {
el: '.swiper-pagination',
},
navigation: {
nextEl: ".swiper-button-next",
prevEl: ".swiper-button-prev",
},
})
スライダーをカード型にできました!
③CSSで見た目を装飾
通常swiper-slideクラスにborder-radiusプロパティ効かないのですが、effect: “cards”を指定することで効くようになります。
.sample-slider{
width:50%;
}
.sample-slider .swiper-slide{ /* 追記 */
border-radius: 20px; /* 追記 */
} /* 追記 */
.sample-slider img{
width: 100%;
vertical-align: bottom; /* 追記 */
}
画像の角が丸まりました!
④cardsEffectオプションで細かい調整を行う
effect: “cards”を指定すると、cardsEffectオプションで細かい調整を行うことができます。
cardsEffectで指定できるオプションは以下になります。
オプション名 | 型 | デフォルト値 | 説明 |
---|---|---|---|
perSlideOffset | 数値 | 8 | スライドの間隔(px) |
perSlideRotate | 数値 | 2 | 2枚目以降のスライドの回転角度 |
rotate | 論理値 | true | 2枚目以降のスライドの回転有無 |
slideShadow | 論理値 | true | 2枚目以降のスライドの影の有無(影は表面に付く) |
cardsEffectオプションを使用した例を一つ見てみましょう。
const swiper = new Swiper('.sample-slider', {
effect: "cards",
cardsEffect: { // 追加
perSlideOffset: 15, // 追加(スライドの間隔(px)
perSlideRotate: 10, // 追加(2枚目以降のスライドの回転角度
rotate: true, // 追加(2枚目以降のスライドの回転(あり・なし)
slideShadows: false, // 追加(2枚目以降のスライドの影(あり・なし)
}, // 追加
grabCursor: true,
pagination: {
el: '.swiper-pagination',
},
navigation: {
nextEl: ".swiper-button-next",
prevEl: ".swiper-button-prev",
},
})
スライドの間隔と回転角度を大きくし、2枚目以降の影を消しています。
ソースコード全文
最後にソースコードを全文載せておきます。
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/swiper@8/swiper-bundle.min.css">
<script src="https://cdn.jsdelivr.net/npm/swiper@8/swiper-bundle.min.js"></script>
<style>
.sample-slider{
width:70%;
}
.sample-slider .swiper-slide{
border-radius: 20px;
}
.sample-slider img{
width: 100%;
vertical-align: bottom;
}
</style>
<div class="swiper sample-slider">
<div class="swiper-wrapper">
<div class="swiper-slide"><img src="./img/sample1.png"></div>
<div class="swiper-slide"><img src="./img/sample2.png"></div>
<div class="swiper-slide"><img src="./img/sample3.png"></div>
<div class="swiper-slide"><img src="./img/sample4.png"></div>
</div>
<div class="swiper-pagination"></div>
<div class="swiper-button-prev"></div>
<div class="swiper-button-next"></div>
</div>
<script>
const swiper = new Swiper('.sample-slider', {
effect: "cards", //カード型に
cardsEffect: {
perSlideOffset: 15, // スライドの間隔(px)
perSlideRotate: 10, // 2枚目以降のスライドの回転角度
rotate: true, // 2枚目以降のスライドの回転(あり・なし)
slideShadows: false, // 2枚目以降のスライドの影(あり・なし)
},
grabCursor: true, //カーソルを掴む動作に
pagination: { //ページネーション(ドット)
el: '.swiper-pagination',
},
navigation: { //ナビゲーション(矢印)
nextEl: ".swiper-button-next",
prevEl: ".swiper-button-prev",
},
})
</script>
以上、swiper.jsを使用してカードスライダーを作成する方法でした。
effectオプションを使用して作成できるスライダーは他にも下記のようなものがあります。
【Swiper】キューブスライダーを作成する
【Swiper】カバーフロースライダーを作成する
【Swiper】フリップスライダーを作成する
【Swiper】フェードスライダーを作成する
【Swiper】クリエイティブエフェクトでオリジナルスライダーを作成する
また、下記ではSwiperスライダーの様々なカスタマイズ方法を記しているのでぜひ覗いてみてください!
Swiperスライダーのデモ22選