こんにちは、フロントエンジニアの原田です。
最近話題になっていたスライダーライブラリ「Splide」を触ってみました。
Splideとは
・Splideは画像などのスライダーライブラリの1つ
・ほかのライブラリに依存しない(非jQuery)
・開発者が日本人
初期設定(まずは動かしてみる)
・HTMLの記述
①Splideライブラリの読み込み
CDNから使用できます
<!-- Splide --> <script src="https://cdn.jsdelivr.net/npm/@splidejs/splide@4.1.4/dist/js/splide.min.js"></script>
②CSS読み込み
<!-- SplideのCSS読み込む --> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@splidejs/splide@4.1.4/dist/css/splide.min.css" />
③HTMLの雛形
<section class="splide" aria-label="Splideの基本的なHTML">
<div class="splide__track">
<div class="splide__list">
<div class="splide__slide">
<img src="img/spring.png" alt="" />
</div>
<div class="splide__slide">
<img src="img/summer.png" alt="" />
</div>
<div class="splide__slide">
<img src="img/fall.png" alt="" />
</div>
<div class="splide__slide">
<img src="./img/winter.png" alt="" />
</div>
</div>
</div>
</section>
①〜③までをまとめたHTML全体は下記の通りです。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<!-- SplideのCSS読み込む -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@splidejs/splide@4.1.4/dist/css/splide.min.css" />
<link rel="stylesheet" href="css/style.css" />
</head>
<body>
<section class="splide" aria-label="Splideの基本的なHTML">
<div class="splide__track">
<div class="splide__list">
<div class="splide__slide">
<img src="img/spring.png" alt="" />
</div>
<div class="splide__slide">
<img src="img/summer.png" alt="" />
</div>
<div class="splide__slide">
<img src="img/fall.png" alt="" />
</div>
<div class="splide__slide">
<img src="./img/winter.png" alt="" />
</div>
</div>
</div>
</section>
<!-- Splide 読み込む -->
<script src="https://cdn.jsdelivr.net/npm/@splidejs/splide@4.1.4/dist/js/splide.min.js"></script>
<script src="./js/main.js"></script>
</body
</html>
・CSSの設定
次に見た目の部分を整えます。(ここはお好みで)
.splide{
max-width: 500px;
width: 100%;
margin: 0 auto;
}
.splide__slide img {
height: 500px;
width: auto;
}
.splide__slide {
text-align: center;
}
・Javascriptの設定
そしてJavascriptファイルでSplideの初期設定をします。
//初期設定
new Splide(".splide").mount();
これだけの記述でスライダーができました!(下記は画像です)
次に実装で使いそうな機能を追加していきます。
ループあり
初期設定だと最後のスライドになったら止まるので、スライドし続けるようにしたい場合は’loop’の設定をしましょう。
new Splide(".splide", {
type: "loop",
}).mount();
自動スクロール
自動スライドの設定もできます!
ただし自動スクロールは「拡張機能」の追加が必要です。
具体的には
・HTMLに追加の記述
・Javascriptのmount(window.splide.Extensions)の記述
になります。ここは他のライブラリと違い少し手間ですね….
・HTMLの追加
<!-- Splide 自動スクロール追加 --> <script src="https://cdn.jsdelivr.net/npm/@splidejs/splide-extension-auto-scroll@0.5.3/dist/js/splide-extension-auto-scroll.min.js"></script>
・Javascriptの編集
//自動スクロール
new Splide(".splide", {
type: "loop",
drag: "free",
autoScroll: {
speed: 1,
},
}).mount(window.splide.Extensions);
画面幅に応じてスライド画像枚数を変える
ただし最大から最小の順序で指定する必要があります。
new Splide(".splide", {
perPage: 4,
breakpoints: {
640: {
perPage: 2,
},
}
}).mount();
感想
・日本人が開発者ということもあり、とにかくドキュメントが読みやすい。
・公式ページにチュートリアルもあり参考になる。
・自動スクロールを使うには追加の記述が必要なのが少し手間。
・他のサイトでの記事が少ない。
・他のライブラリ(slick,Swiper)とコードが似てて、わかりやすい。
今後使う機会が増えていくかもしれないですね!



