Blog

2021.07.28

【Youtube解説】オプションを追加してslick sliderをカスタマイズ

YouTubeにUPした「オプションを追加してslick sliderをカスタマイズ」について解説します。
スライダーの導入に最適なSlickの導入からカスタマイズまで解説します。

1slick sliderの導入

slick sliderの導入は他のjQueryプラグインと同様、ローカルに保存する方法とCDNを読み込む方法があります。動画ではローカルに保存する方法で紹介しています。

■ローカルに保存して使う方法

slickの公式ページからダウンロードします。「get it now」→「Download Now」でファイル一式をダウンロードできます。 ダウンロードが完了したらzipフォルダを開き、「slick」フォルダの以下3つのファイルを自分の任意のローカルフォルダにコピペします。

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

次に上記3つをhtmlファイルに読み込ませます。「slick.css」は必ず「slick-theme.css」より上に記述しましょう。また「slick.min.js」もjqueryを読み込んだ後(下)に記述します。

<link rel="stylesheet" href="slick/slick.css">
<link rel="stylesheet" href="slick/slick-theme.css">

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script src="slick/slick.min.js"></script>

■CDNを使う方法

CDNを使うときは、cdnjs.comというサイトを使うと便利です。google検索で「slick cdnjs」と検索すると出てきます。ここで出てきたURLをコピーして、上と同様HTMLに読み込みます。
動画内でも紹介していますが、jqueryの読み込みもこのcdnjs.comを使うと簡単ですので、使ってみてください。

<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.8.1/slick.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.8.1/slick-theme.css">

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.8.1/slick.min.js"></script>

2slick sliderの作成

スライダーさせたい部分の外に任意のクラスをつけたボックスを作成します。動画内では「.my-slider」とクラス名をつけたdiv要素になります。この.my-sliderには横並びにするCSSなどは必要なく、slickのプラグインが横並びにしてくれます。 ただスライダーの幅を決めないと画面をオーバーしてしまうので「width」だけは設定してあげましょう。
HTMLが準備できたら、任意のJSファイル(例としてmy.jsとします。)にslickを動かすための記述をします。記述の仕方は簡単で、先ほど設定した.my-sliderをターゲットに.slick()関数を設定するだけです。

$(function(){
    $(".my-slider").slick();
});

こうすると、スライダーの形が出来上がります。デフォルトではslickのfontsを使った矢印が設定してあるので、矢印がスライダーの左右にある形で表示されます。今回は「fonts」フォルダをローカルに保存していないため、デバイス文字の矢印が表示されているかと思います。

3Font AwesomeでArrow(矢印)を作成する

デフォルトの矢印の代わりにFont Awesomeのアイコンを使う方法をご紹介します。

■Font Awesomeの導入

前述したCDNを使う方法と同じように、cdnjs.comを使ってFont Awesomeの「all.min.css」をhead内で読み込みます。これで自由にアイコンを使えるようになります。

<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.3/css/all.min.css">

■デフォルトの矢印を消す

Font Awesomeの準備ができたら、すでに設定してあるデフォルトの矢印を削除します。「slick-theme.css」を開き「.slick-prev:before」と「.slick-next:before」のcontentに設定してある「←」「→」をそれぞれ削除します。

.slick-prev:before
{
    content: '';
}
.slick-next:before
{
    content: '';
}

■Font Awesomeの矢印を設定する

任意の矢印を自分で設定したい場合はslickのオプションを使ってjqueryで任意のHTMLを作成します。my.jsに以下のオプションを追加します。

prevArrow : ”,
nextArrow : ”

「”」のなかにFont Awesomeで持ってきたi要素をそのままペーストします。これで矢印がHTMLに反映するので、後はCSSをいじって位置を調節すると完了です。

$(function(){
    $(".my-slider").slick({
        prevArrow:'<i class="fas fa-arrow-left"></i>',
        nextArrow:'<i class="fas fa-arrow-right"></i>'
    });
});

4slickのカスタマイズ一覧

slickにはたくさんのオプションが用意されており、スライダー周りのことを自分なりにカスタマイズすることができます。ここではほぼ全てのオプションをご紹介します。特によく使うオプションにはをつけているので要チェックです。

オプション デフォルト 内容
autoplay false 自動でスライドするかどうか。
autoplaySpeed 3000(3秒) スライドし終わってからスライドするまでの時間(ミリ秒)。
speed 300 スライドにかかる時間(ミリ秒)
cssEase ease スライド切り替え時のイージング。CSS3のAnimationEasing(ease-inなど)を使える。
fade false スライドの切り替わりをfadeにするかどうか。
infinite true スライダーをループするかどうか。
responsive none 画面幅でオプションを変更できる。breakpointで画面幅を指定し、settingsの中にオプションを設定する。
slidesToShow 1 表示したいスライドの数を設定する。
slidesToScroll 1 1回で何個分スライドさせるか。
arrows true 矢印を表示するかどうか。
prevArrow 省略 前矢印(←)を任意のHTMLにカスタマイズする。
nextArrow 省略 後ろ矢印(→)を任意のHTMLにカスタマイズする。
dots false スライダーにdots(ページャー)を追加するかどうか。
dotsClass slick-dots dotsを囲むcontainerのクラスを変更できる。
customPaging なし dotsがtrueの時使用可。dotsをカスタマイズできる。
asNavFor null 他のスライダーのナビゲーションとしてのスライダーを設置する。
centerMode false 両サイドのスライドが見切れるかどうか。slidesToShowが奇数の時使用可能。
centerPadding 50px centerModeの時の両サイドスライドの見切れ幅。
accessibility true タブまたは矢印でスライド切り替えができる。
draggable true マウスカーソルでのドラッグでスライドできるかどうか。
touchMove true タッチでスライドできるかどうか。
focusOnSelect false クリックまたはタッチしたスライドが中央に移動するかどうか
edgeFriction 0.15 infiniteがfalseの時使用可。両端のスライドをスワイプした時の遊びの幅。1だとスライド1個分、0だと完全に動かない。
initialSlide 0(1枚目) 始まりのスライドを指定できる。
pauseOnFocus true autoplayがtrueの時にスライドをクリックした際一時停止するかどうか。
pauseOnFocus true autoplayがtrueの時にマウスがホバーした際一時停止するかどうか。
pauseOnDotsHover false autoplayがtrueの時にマウスがdotsにホバーした際一時停止するかどうか。
swipe true 横方向へスワイプやドラッグでスライドを切り替えができるかどうか。
swipeToSlide false slidesToScrollに関係なく、スライドに直接ドラッグまたはスワイプできるようにするかどうか
touchMove true タッチでスライドできるかどうか。
vertical false 縦方向のスライドにさせるかどうか。
verticalSwiping false 縦方向へスワイプやドラッグでスライドを切り替えができるかどうか。
rtl false スライドの向きを右から左(逆)にする。

5ページャーにページ数を表示する方法

大まかに説明すると、ページャーを表示する領域をjqueryで作成してcssで整えることになります。初期表示のページャーの作成から、現在のページ数が増減する動きの実装の順で解説します。

■初期表示のページャーを作成する

$(function(){
    $(".my-slider").on('init', function(event, slick){
        $(this).append('<div class="slick-counter"><span class="current-num"></span> / <span class="total-num"></span></div>');
        $(".current-num").text(slick.currentSlide + 1);
        $(".total-num").text(slick.slideCount);
    });
    $(".my-slider").slick();
});

まずslickを実行する前にinitイベントを使って.my-sliderの中にページャーの領域を作成します。今回はjqueryのappend()を使ってdiv(.slick-counter)の中に「現在のページ番号(.current-num) / 総ページ数(.total-num)」となるような領域(HTML)を作成します。
.current-numにはslick.currentSlideで現在の枚数を、.total-numにはslick.slideCountで総数を取得して、.text()で表示しておきます。これで初期状態でのカウント数が表示されるようになります。
次に現在のページ数が増減する動きを実装します。

■現在のページ数が増減する動きの実装

$(".my-slider").on('beforeChange', function(event, slick, currentSlide, nextSlide){
    $(".current-num").text(nextSlide +1);
});

slickのbeforeChangeというイベントを使ってnextSlideで次のスライドの番号を取得し、現在のページ番号(.current-num)の中の数字を.text()で書き換えることでページ数に合わせて増減するようになります。

最後に

動画をまだ見ていない方は是非チェックしてみてください!音声はBGMのみなので、再生速度を上げて流し見するのがおすすめです!

Prev

関連記事

人気記事

Home > Blog > slick > 【Youtube解説】オプションを追加してslick sliderをカスタマイズ