JavaScript

slick.jsを使ってスライダーをつくってみる

slick.jsを使ってスライダーをつくってみる
designchips

jQueryのライブラリの「slick.js」を使ってスライドショーをつくる手順をご紹介していきます。

slick.jsを使ってスライドショーを作る方法

まずは、基本となるHTMLコードを確認していきましょう。

HTML

サンプルコードとして以下のようなコードをご用意しました。

<section class="slider">
	<ul>
		<li><img src="images/slide01.jpg"></li>
		<li><img src="images/slide02.jpg"></li>
		<li><img src="images/slide03.jpg"></li>
		<li><img src="images/slide04.jpg"></li>
		<li><img src="images/slide05.jpg"></li>
		<li><img src="images/slide06.jpg"></li>
		<li><img src="images/slide07.jpg"></li>
		<li><img src="images/slide08.jpg"></li>
		<li><img src="images/slide09.jpg"></li>
		<li><img src="images/slide10.jpg"></li>
	</ul>
</section>

liタグにスライドしたい画像を配置しています。

<head>内でslick.jsに必要なCSSを2つ読み込む

そして、<head>~</head>内に「slick.css」と「slick-theme.css」を読み込みます。

<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/slick-carousel@1.8.1/slick/slick.css"/>
<link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick-theme.min.css"/>

</body>の直前でjQueryとslick.jsを読み込む

</body>の直前でslick.jsに必要な「jQuery」と「slick.js」を読み込みます。

<script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/slick-carousel@1.8.1/slick/slick.min.js"></script>

CSS

ul{
	list-style: none;
	width: 100%;
	margin: 2rem auto;
	padding: 0;
}
li{
	margin: 0 0.1%;
}
img{
	width: 100%;
}

ul

スライドする要素を囲うulタグに対し、リストマークを非表示にして上下にマージンを取っています。

li

スライドする画像の間隔を少し空けたいので、左右に0.1%のmarginを指定しています。

javascriptを記述

先ほど、jQueryとslick.jsを読み込んだ後ろ(</body>タグの直前)に、javascriptを実行するコードを記述していきます。

slick.jsの基本設定は以下のようになります。

$(‘.slider’).slick();

この基本設定に、いくつかオプションを指定していきます。

<script type="text/javascript">
	$("ul").slick({
		dots: true,
		slidesToShow: 3,
		slidesToScroll: 1,
		centerMode: true,
		autoplay: true,
		autoplaySpeed: 3000,
		arrows: false,
		responsive: [
			{
			breakpoint: 768, // 768px以下の設定
			settings: {
				slidesToShow: 1
			}
			}
		]
	});
</script>

ulタグに対してslick.jsが起動するようにして、いくつかのオプション設定でカスタマイズしています。

dots: true

スライドの下に、インジケーターと呼ばれるドットを表示するかどうかの指定をしています。trueの場合は表示、falseで非表示になります。

slidesToShow

画面上にいくつの要素を見えるように配置するかを数値で指定します。

slidesToScroll

一度の横スライドで、いくつの要素をスライドさせるかの値を数値で指定します。「1」であれば1要素ずつスライドされます。

centerMode: true

スライドエリアをセンター寄せするオプションです。

autoplaySpeed: 3000

スライダーが停止して、再度スライドを開始するまでの時間間隔を指定します。1秒であれば1000を、3秒であれば3000を指定します。

slick.jsのレスポンシブ対応

例えば、デスクトップで閲覧する場合は3つの要素を表示してスライドさせるが、スマホの場合は小さくなってしまうので、1つのみ表示して、1つずつスライドさせたい場合には、javascript内に「responsiveオプション」を設定することで実現できます。

先ほどの「javascript」に記述した以下の部分でがそれにあたります。

responsive: [
	{
	breakpoint: 768, // 768px以下の設定
	settings: {
		slidesToShow: 1
	}
	}
]

responsiveオプションの中に、

breakpoint: 768

ウィンドウサイズが横幅768px以下になった場合に以下の指定が適用されます。

setting:{ slidesToShow: 1}

768px以下になった場合には、スライドが見える数を「1」にするという指示になります。

簡易的な作りでサンプルは作成しておりますが、インジケーターのドットのデザインやスライドする要素のデザインなどは、CSS等でカスタマイズできますので挑戦してみてください。

当ブログの画像をコピーして利用することはできません。
記事URLをコピーしました