WEBサイトを制作している際に画像を横並びにしたいケースがあります。ただ幅には限度があるため多くの画像を並べられません。そこで活用したいのがスライドショーです。スライドショーならば、限度がある幅に対しても多くの画像をスライドして見せられます。そこで今回は、スライドショーを制作する際に便利な「Swiper.js」の使い方を紹介します。
SwiperはCDNで読み込んで使うか、ファイルを読み込んで使うかの2つの方法があります。
今回はCDNで読み込んでスライドショーを作る方法を解説していきます。
↓SwiperのCDNは次のリンクに載っています。
https://swiperjs.com/get-started
CDNには下記のようにCSSとjsの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>
下記がswiperのベースになるHTMLの記述です。
▢HTMLファイル
<section class="swiper_box">
<h1 class="production_achieve">スライドショー</h1>
<div class="swiper">
<div class="swiper-wrapper">
<div class="swiper-slide">Slide 1</div>
<div class="swiper-slide">Slide 2</div>
<div class="swiper-slide">Slide 3</div>
<div class="swiper-slide">Slide 4</div>
<div class="swiper-slide">Slide 5</div>
</div>
</div>
</section>
下記がswiperのベースになるjavascriptの記述です。
▢jsファイル
const swiper = new Swiper(".swiper", {
});
上記のHTMLとjavascriptの記述だけで下記のように最低限のスライドショーが作成できます。スライド部分のCSSは自身の好きなように調整してみてください。
See the Pen
Untitled by wataru🐧 (@mimori_5046)
on CodePen.
左クリックをしながら、左にマウスを動かすと画像がスライドして、次の画像が表示されます。
最低限のスライドショーの作成をしたら、次はスライドボタンやページネーションの設置、スライドの速さの設定などのオプションを付け加えて、自分好みのスライドショーを作成していきましょう。ここからはSwiperでよく使うオプションを紹介します。
スライドボタンを設置すれば、ボタンをクリック・タップすることにより、スライドを動かせます。スライドボタンを設置するには、HTMLとjsファイルに以下の記述を行います。
▢HTMLファイル
<div class="swiper">
<div class="swiper-wrapper">
<div class="swiper-slide">Slide 1</div>
<div class="swiper-slide">Slide 2</div>
<div class="swiper-slide">Slide 3</div>
<div class="swiper-slide">Slide 4</div>
<div class="swiper-slide">Slide 5</div>
</div>
<!-- スライドボタンの設置-->
<div class="swiper-button-prev"></div>
<div class="swiper-button-next"></div>
</div>
▢jsファイル
const swiper = new Swiper(".swiper", {
<!-- スライドボタンの設置-->
navigation: {
nextEl: ".swiper-button-next",
prevEl: ".swiper-button-prev"
},
});
上記の記述をするとスライドボタンは下記のように設置できます。
See the Pen
Untitled by wataru🐧 (@mimori_5046)
on CodePen.
ページネーションがあれば、現在自分が何枚目のスライドを表示しているのかが、一目で分かります。ページネーションを設置するには、HTMLとjsファイルに以下の記述を行います。
▢HTMLファイル
<section class="swiper_box">
<h1 class="production_achieve">スライドショー</h1>
<div class="swiper">
<div class="swiper-wrapper">
<div class="swiper-slide">Slide 1</div>
<div class="swiper-slide">Slide 2</div>
<div class="swiper-slide">Slide 3</div>
<div class="swiper-slide">Slide 4</div>
<div class="swiper-slide">Slide 5</div>
</div>
<div class="swiper-button-prev"></div>
<div class="swiper-button-next"></div>
<!-- ページネーションの設置-->
<div class="swiper-pagination"></div>
</div>
</section>
▢jsファイル
const swiper = new Swiper(".swiper", {
navigation: {
nextEl: ".swiper-button-next",
prevEl: ".swiper-button-prev"
},
<!-- ページネーションの設置-->
pagination: {
el: '.swiper-pagination',
type: 'bullets',
clickable: true
},
});
上記の記述をすると、ページネーションは下記のように設置できます。
See the Pen
ページネーション by wataru🐧 (@mimori_5046)
on CodePen.
スライドのスピードの設定は簡単です。下記のようにjsファイルに「 speed: 数値,」と記述すればスピードの設定ができます。
▢jsファイル
const swiper = new Swiper(".swiper", {
navigation: {
nextEl: ".swiper-button-next",
prevEl: ".swiper-button-prev"
},
pagination: {
el: '.swiper-pagination',
type: 'bullets',
clickable: true
},
<!-- スライドのスピードの設定-->
speed: 100,
});
上記の記述をすると下記のようにスライドのスピードを変えられます。
See the Pen
スピード by wataru🐧 (@mimori_5046)
on CodePen.
これまで制作してきたスライドショーは、まだループに対応していません。ループに対応させれば、最後のスライド画面から最初のスライド画面に、最初のスライド画面から最後のスライド画面に移動できます。
下記のように「loop: true,」とjsファイルに記載するとループに対応させられます。
▢jsファイル
const swiper = new Swiper(".swiper", {
navigation: {
nextEl: ".swiper-button-next",
prevEl: ".swiper-button-prev"
},
pagination: {
el: '.swiper-pagination',
type: 'bullets',
clickable: true
},
speed: 100,
<!-- ループに対応させる-->
loop: true,
});
上記の記述をすると、下記のようにスライドにループを設定できます。
See the Pen
ループ by wataru🐧 (@mimori_5046)
on CodePen.
これまではボタンを押さないとスライドが動かない仕様でしたが、自動で動かせるような設定も可能です。下記のように「autoplay」とjsファイルに記載すると自動で動くようになります。
▢jsファイル
const swiper = new Swiper(".swiper", {
navigation: {
nextEl: ".swiper-button-next",
prevEl: ".swiper-button-prev"
},
pagination: {
el: '.swiper-pagination',
type: 'bullets',
clickable: true
},
<!-- スライダーを自動で動かす-->
autoplay: {
delay: 2000,
},
speed: 100,
loop: true,
});
上記の記述をすると下記のようにスライダーが自動で動くようになります。また 「delay: (数値),」でスライドの速さを設定できます。
See the Pen
スライド 自動 by wataru🐧 (@mimori_5046)
on CodePen.
これまでは表示されるスライドの枚数は一枚のみでした。表示される枚数も設定可能です。またスライドの間隔の設定についても紹介します。下記のようにjsファイルに「slidesPerView」「spaceBetween」で表示されるスライドの枚数と間隔の設定が可能です。
▢jsファイル
const swiper = new Swiper(".swiper", {
navigation: {
nextEl: ".swiper-button-next",
prevEl: ".swiper-button-prev"
},
pagination: {
el: '.swiper-pagination',
type: 'bullets',
clickable: true
},
autoplay: {
delay: 2000,
},
speed: 100,
loop: true,
<!-- 表示するスライドの枚数-->
slidesPerView: 3,
<!-- スライドの間隔の幅-->
spaceBetween: 20,
});
上記の記述をすると、下記のように表示されるスライドの枚数と間隔を設定できます。今回は一画面に3枚、間隔の幅は20pxで設定しました。
See the Pen
スライド枚数 間隔 by wataru🐧 (@mimori_5046)
on CodePen.
左右にちらっと前後のスライドを表示させるようにすると、閲覧者の興味を引かせられるでしょう。下記のようにjsファイルに「slidesPerView」を小数点で設定しつつ、「 centeredSlides: true,」と記述すれば実装できます。
▢jsファイル
const swiper = new Swiper(".swiper", {
navigation: {
nextEl: ".swiper-button-next",
prevEl: ".swiper-button-prev"
},
pagination: {
el: '.swiper-pagination',
type: 'bullets',
clickable: true
},
autoplay: {
delay: 2000,
},
speed: 100,
loop: true,
<!-- 小数点で表示領域を設定する-->
slidesPerView: 1.5,
spaceBetween: 20,
<!-- 中央に配置する-->
centeredSlides: true,
});
上記の記述をすると、下記のように真ん中にスライドを配置しつつ、前後のスライドがちらっと見えるようになります。
See the Pen
センタリング by wataru🐧 (@mimori_5046)
on CodePen.
パソコンでの表示なら3枚、タブレット表示なら2枚というように幅によって枚数を変更できます。下記のようにjsファイルに「breakpoints」を記載すると、幅ごとのブレイクポイントが設定できます。
▢jsファイル
const swiper = new Swiper(".swiper", {
navigation: {
nextEl: ".swiper-button-next",
prevEl: ".swiper-button-prev"
},
pagination: {
el: '.swiper-pagination',
type: 'bullets',
clickable: true
},
autoplay: {
delay: 2000,
},
speed: 100,
loop: true,
slidesPerView: 1,
centeredSlides: true,
<!-- 幅ごとのブレイクポイントを設定する-->
breakpoints: {
600: {
slidesPerView: 2,
spaceBetween: 20,
},
1120: {
slidesPerView: 3,
spaceBetween: 30,
},
},
});
ということでこれまでSwiperでのスライドショーの作成方法を解説してきました。ここで紹介した以外にも、様々なオプションがあるので、自分好みのスライドショーを作成してみてください。
GIV株式会社は、埼玉県川越市にあるWEB(ホームページ)制作会社です。お困りごと、ご相談、お気軽にご連絡ください。お問い合わせは、こちらから。