slick - the last carousel you'll ever need.

高機能・高品質なjQueryスライダー[slick]の使い方を紹介します。

このjQueryスライダーは「FlexSlider」「BxSlider」「flickity」「Swiper」など、他の優良jQueryプラグインと並んで紹介されることも多く、公式サイトでは「the last carousel you’ll ever need.(訳:あなたが必要とする最後のカルーセル)」と謳われており、実際、オプションの豊富さや安定した挙動が評価され、多くの制作者様がオススメし、また実際のウェブサイトでもよく使われています。

公式サイトは以下。

公式サイト:slick

get it now」というリンクを押した後、「Download Now」をクリックすると配布されているファイル一式をダウンロードすることができます。

ダウンロードしたzipファイルを解凍すると、いくつかのファイルとフォルダが展開されますが、このうち主に必要なのは以下のリストに挙げたファイルになります。

  • slick-theme.css
  • slick.css
  • slick.min.js

他に「fonts」というフォルダにフォントのファイル一式が内包されていますが、これはスライダーをコントロールするナビゲーションの矢印やドットを表示する際に使われます。
デザインを独自にカスタマイズするのであれば不要ですが、デフォルトの状態のまま利用する際はこれらも必要になります。

なおこのフォントファイルはスタイルシートの「slick-theme.css」内で読み込むように設定されています。
以下、詳しい実装方法を紹介します。

[slick]の実装方法

HTMLの記述

まずはHTMLの <head>〜</head> 内で[slick]のファイル一式とjQueryの本体ファイルを読み込みます。

<head>
	<link rel="stylesheet" href="slick.css">
	<link rel="stylesheet" href="slick-theme.css">
	<script src="//ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
	<script src="slick.min.js"></script>
</head>

jQuery本体ファイルは、今回はGoogleのCDNにホストされている最新ヴァージョン「3.6.0」を読み込んでいます。

続いて[slick]を使うスライダー部分ですが、こちらは以下のようなシンプルなコードでOKです。

<ul class="sample">
	<li><img src="images/sample-01.png"></li>
	<li><img src="images/sample-02.png"></li>
	<li><img src="images/sample-03.png"></li>
</ul>
JavaScriptの記述

最後に[slick]を起動させるための初期設定のコードをHTMLの任意の箇所に記述。
基本的にはこれで動くようになります。

<script>
$(function(){
	 $('.sample').slick({
	 	 autoplay:true,
	 	 autoplaySpeed:2000,
	 	 dots:true,
	 	 pauseOnHover:true
	});
}); 
</script>

なお上記の設定では、クラス名「.sample」の箇所に[slick]を効かせ、自動再生を有効化、その自動再生の間隔は2秒に指定、サムネイルのドットを表示、マウスカーソルを充てると自動再生が一時停止、という内容になっています。

[slick]のオプション設定

以下が用意されているすべてのオプションです。

オプション説明初期値
accessibilityタブと矢印キーのナビゲーションの有効/無効true
adaptiveHeightスライダーの高さを現在のスライド(.slick-current)に合わせるfalse
autoplay自動再生false
autoplaySpeed自動再生のスライド切り替えの時間をミリ秒で指定3000
arrows左右のナヴィゲーションの矢印を表示true
asNavForスライダーを他のスライダーのナビゲーションとして連動させるnull(クラス名かID名で指定)
appendArrowsスライドの左右のナヴィゲーションの矢印ボタンを挿入する場所を変更する$(element)
appendDotsスライドのドットインジケーターを挿入する場所を変更する$(element)
prevArrow左へ戻る矢印ボタンのHTMLをカスタマイズ<button type=”button” class=”slick-prev”>Previous</button>
nextArrow右へ進む矢印ボタンのHTMLをカスタマイズ<button type=”button” class=”slick-next”>Next</button>
centerModeスライドを中心に表示して部分的に前後のスライドが見えるように設定、奇数のスライドに適用false
centerPadding「centerMode」指定時のサイドのパディング(pxまたは%で指定)50px
cssEaseCSS3アニメーションイージングを指定ease
customPaging「dots:true」のときにドットをカスタマイズn/a
dotsドットインジケーターの表示/非表示false
dotsClassドットインジケーターのクラス名を設定slick-dots
draggableマウス操作でのドラッグを有効にするtrue
fadeスライダーの切り替えをスライドではなくフェイドインにするfalse
focusOnSelectクリックでのスライド切り替えを有効にするfalse
easingjQueryアニメーションイージングを指定linear
edgeFriction「infinite:false」のときに最初と最後のスライドをスワイプしたときのフリクション値を設定0.15
infiniteスライドのループを有効化true
infiniteスライドのループを有効化true
initialSlideスライドの開始番号0
lazyLoad画像の遅延読み込みを設定(”ondemand”または”progressive”)ondemand
mobileFirstレスポンシブの設定でモバイルの計算を優先させるfalse
pauseOnFocus自動再生時にスライドにフォーカスした際、自動再生をストップさせるtrue
pauseOnHover自動再生時にスライドにマウスオーバーした際、自動再生をストップさせるtrue
pauseOnDotsHover自動再生時にドットインジケーターにマウスオーバーした際、自動再生をストップさせるfalse
respondToレスポンシブの基準を設定(”window”、”slider”、”min”)window
responsivebreakpointで設定したいブレイクポイントを指定、さらにsettingsでブレイクポイントの範囲内になったとき処理を設定none
rowsスライドの行数を設定、slidesPerRowを使用して各行に含めるスライドの数を設定1
slideスライドとして使用する要素を設定。
slidesPerRow「rows」が”2″以上で設定されているとき、各行にいくつのスライドを表示するか設定1
slidesToShow表示するスライド数を設定1
slidesToScrollスクロールするスライド数を設定1
speedスライドまたはフェードアニメーションの速度を設定300
swipeスワイプを有効にするtrue
swipeToSlideslidesToScrollの設定に関係なく、スライドをドラッグまたはスワイプした場合は1つずつスライドを動かすfalse
touchMoveタッチでスライドさせるtrue
touchThresholdスワイプでスライドさせる距離を設定((1 / touchThreshold)*スライダの幅)5
useCSSCSS transitionsを有効にするtrue
useTransformCSS transformsを有効にするtrue
variableWidth可変幅のスライドにするfalse
vertical垂直スライドモードにするfalse
verticalSwiping垂直のスワイプを有効にするfalse
rtlスライダの方向を右から左に変更するfalse
waitForAnimateスライドアニメーション中にスライドを前後させる要求を無視するtrue
zIndexスライドの重なり順1000

大量の項目が存在しますね。
これだけ揃っていれば充分すぎるでしょう。

ブレイクポイントの使い方

slickのオプション設定でつまづきやすいのがレスポンシブ対応時のブレイクポイントの使い方だと思います。
具体的には、次のように記述します。

$(function() {
$('.slider').slick({
	autoplay: true, // 自動再生を有効化
	slidesToShow: 5,
	responsive: [{
		breakpoint: 900, // 900px以下のとき
		settings: {
			slidesToShow: 3,
		},{
		breakpoint: 620, // 620px以下のとき
		settings: {
			slidesToShow: 1,
		}
	}]
});
});

ここではブレイクポイントを「900px」と「600px」で指定して、「通常時はslidesToShow: 5」で動き、「900px以下のときはslidesToShow: 3」が適用され、「620px以下のときはslidesToShow: 1」が適用される、という挙動になっています。

[slick]のイベント設定

slickのバージョン「1.4」以降からは、コールバック関数にも対応しています。

関数名処理内容
afterChangeスライド後に発生
beforeChangeスライド前に発生
breakpoint設定したブレークポイントの範囲内になったら発生
destroyスライダーを解除(unslick)したときに発生
edge「infinite:false」のとき最初と最後のスライドをドラッグしたときに発生
initslickの初期化後に発生
reInitslickの再初期化後に発生
setPosition位置またはサイズの変更後に発生
swipeスワイプまたはドラッグ後に発生
lazyLoaded画像の遅延読み込み後に発生
lazyLoadError画像の読み込みが失敗した後に発生

コールバック関数は次のように使います。

$(selector).on('eventname',function(){
    // 行いたい処理
});

以上。
これらを組み合わせて自由自在に設定が可能です。
詳細は公式サイトをご覧ください。

実際に動作するサンプルは以下のリンク先からどうぞ。

[slick]:動作サンプル

株式会社オンズでは、新規のウェブサイト制作だけでなく、こういった便利なプラグインを既存のウェブページに設置するお手伝いも承っています。
比較的安価で高機能なシステムを導入できますので、ご要望のある方はぜひお問い合わせください。

お問い合わせフォームは以下より。

お問い合わせ