・Swiperで縦方向に動くスライダー作れる?
こんな疑問にお答えします。
デザインによっては縦方向に動くスライダーを作る必要ありますよね。
実はそれSwiperなら簡単に実装可能です。
すぐにできるよ!
ということで、この記事では「Swiperで縦方向のスライダーを作る方法」について解説していきます!
swiper自体の作り方については下記記事を参考に↓
【簡単】Swiperの使い方|初心者向けに解説【オプション】Swiperで縦方向のスライダーを作る方法
目次
【解説】Swiperで縦方向のスライダーを作る方法【サンプルあり】
そんな縦方向に動くスライダーのサンプルがこちら↓
See the Pen swiper 縦方向に動くスライダー by jito-coder (@jito-coder) on CodePen.
縦方向に動きますよね!
<div class="swiper">
<div class="swiper-wrapper">
<div class="swiper-slide swiper-slide01">
<img src="https://jito-site.com/wp-content/uploads/2023/01/1.png" alt="">
</div>
<div class="swiper-slide swiper-slide02">
<img src="https://jito-site.com/wp-content/uploads/2023/01/2.png" alt="">
</div>
<!-- 省略 -->
</div>
<div class="swiper-pagination"></div>
<div class="swiper-button-prev"></div>
<div class="swiper-button-next"></div>
</div>
.swiper {
height: 425px;
width: min(100%, 640px);
margin-inline: auto;
}
@media screen and (max-width: 640px) {
.swiper {
height: 61vw;
}
}
.swiper-button-prev, .swiper-button-next {
margin: 0;
right: 20px;
left: initial;
transform: rotate(90deg);
}
.swiper-button-prev {
top: 0;
}
.swiper-button-next {
top: initial;
bottom: 0;
}
window.onload = function() {
const swiper = new Swiper(".swiper", {
direction: "vertical",
spaceBetween: 20,
slidesPerView: 1,
loop: true,
pagination: {
el: ".swiper-pagination",
clickable: true,
},
navigation: {
nextEl: ".swiper-button-next",
prevEl: ".swiper-button-prev",
},
});
}
コードの中で重要な点がこちら↓
- 通常通りのスライダーを実装
- 縦方向にするオプションを記述
- 親要素の高さを指定
- 矢印の位置を調整する
順に解説してきます。
まず通常通りのスライダーを実装するHTMLを組み立てます。
<div class="swiper">
<div class="swiper-wrapper">
<div class="swiper-slide swiper-slide01">
<img src="https://jito-site.com/wp-content/uploads/2023/01/1.png" alt="">
</div>
<div class="swiper-slide swiper-slide02">
<img src="https://jito-site.com/wp-content/uploads/2023/01/2.png" alt="">
</div>
<!-- 省略 -->
</div>
<div class="swiper-pagination"></div>
<div class="swiper-button-prev"></div>
<div class="swiper-button-next"></div>
</div>
ここに関してはいつも通りでOKです。
次にJavaScriptにて、縦方向にするオプションを記述します。
それが「direction: “vertical”,」ですね。
direction: "vertical",
下記3行目のように追加したら、縦方向に動くようになります。
window.onload = function() {
const swiper = new Swiper(".swiper", {
direction: "vertical",
spaceBetween: 20,
slidesPerView: 1,
loop: true,
pagination: {
el: ".swiper-pagination",
clickable: true,
},
navigation: {
nextEl: ".swiper-button-next",
prevEl: ".swiper-button-prev",
},
});
}
ただしこのままでは、上手くうごきません。
というのも縦方向に動かす場合、親要素の高さを指定する必要があるため。
「.swiper」に対して、heightを指定してあげます。
今回は下記のように指定しました↓
.swiper {
height: 425px;
width: min(100%, 640px);
margin-inline: auto;
}
@media screen and (max-width: 640px) {
.swiper {
height: 61vw;
}
}
「vw」で指定すれば、レスポンシブ対応された縦方向スライダーが実装できますよ。
この時点で縦方向に動くスライダーは完成しております。
ですが見た目は下記画像の感じ↓
ドットは自然と右位置になり、矢印はそのままの位置。
どうせなら矢印を上下に置きたいですよね。というわけで最後にCSSにて位置を調整します。
指定する矢印のクラス名がこちら↓
.swiper-button-prev, .swiper-button-next {
margin: 0;
right: 20px;
left: initial;
transform: rotate(90deg);
}
.swiper-button-prev {
top: 0;
}
.swiper-button-next {
top: initial;
bottom: 0;
}
「rotate」で角度を変えて、topやbottomを調整して上下に持ってきました。
これで縦方向に動くスライダーの実装完成です。
矢印やドットのカスタマイズをしたい方は、下記らを参考に↓
【解決】Swiperで矢印とドットを外に出す方法【サンプルあり】 【Swiper】ドット/ページネーションのカスタマイズ方法【画像】 【解説】Swiperの矢印カスタマイズ方法【前へ・次へ】【解説】Swiperで縦方向のスライダーを作る方法【サンプルあり】:まとめ
- 「direction: “vertical”,」で縦方向にする
- 縦方向にする場合、親要素の高さ指定が必要
- あとはデザインに合わせて矢印等の位置を調整
Swiperで縦方向のスライダーを作る時はためしてみてね!