slick.jsを使ってスライドショーを作ってみましょう。

slick.jsはスピードやアニメーションなどをカスタマイズして好みのスライダーが作れるjQueryのライブラリです。

サンプル

サンプルを見てみましょう。

See the Pen
slick.jsを使ってスライドショーを作る
by イロイロデザインラボラトリ (@iroirodesignlab)
on CodePen.

サンプルでは

    で作ったリストがスライダーになっています。

    HTML

    HTMLはこんな感じです。

    <!DOCTYPE html>
    <html lang="en">
      <head>
        <meta charset="UTF-8" />
        <title></title>
        <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.8.1/slick.min.css" />
      </head>
      <body>
    
        <ul>
          <li><img src="https://placehold.co/1920x1080/22a6b3/FFF" /></li>
          <li><img src="https://placehold.co/1920x1080/6ab04c/FFF" /></li>
          <li><img src="https://placehold.co/1920x1080/f0932b/FFF" /></li>
          <li><img src="https://placehold.co/1920x1080/f9ca24/FFF" /></li>
          <li><img src="https://placehold.co/1920x1080/be2edd/FFF" /></li>
        </ul>
    
        <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.0/jquery.min.js"></script>
        <script src="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.8.1/slick.min.js"></script>
      </body>
    </html>

    でslick.jsのCSSを読み込み、 の直上でjQuery本体とslick.jsを読み込んでいます。

    CSS

    CSSはSCSSを使っています。

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

    *

    ユニバーサルセレクタを使って要素があらかじめ持っているmarginとpaddingをリセットしています。slick.jsを実装するのに特に必要ありません。

    ul

    スライダー全体のスタイルを指定します。list-style: none;でリストマークを非表示にしています。

    また、

  • は横並びになっていますが、slick.jsが動作すると自動で横並びになるのでdisplay:flex;などを使ってCSSで横並びにする必要はありません。

    li

  • の間隔を適切にするため、左右に0.1%のmarginを指定しています。

    img

    画像の横幅を

  • の大きさに合わせるためwidth: 100%;を指定しています。

    JavaScript

    JavaScriptはjQueryを使います。jQuery → slick.jsの順番で読み込んだら、その下にslick.jsを実行するコードを書いていきます。

    $("ul").slick({
      dots: true,
      slidesToShow: 3,
      slidesToScroll: 1,
      centerMode: true,
      autoplay: true,
      autoplaySpeed: 3000,
    });

    dots: true

    ドットのインジケーターを下部に表示するためのオプションです。falseを指定すると非表示になります。

    slidesToShow: 3

    見えている要素の数を指定するオプションです。3であれば3つ見えている状態ということになります。

    slidesToScroll: 1

    1回でいくつの要素をスクロールさせるか調整できるオプションです。1であれば要素を1つずつスクロール、3であれば要素を3つずつスクロールします。

    slidesToScroll: 3

    centerMode: true

    要素をセンタリングするオプションです。slideToShowのオプションに関係なく前後に1つずつ要素が見切れるようになります。

    autoplay: true

    自動でスクロールするかどうかを指定するオプションです。falseにすると自動スクロールしなくなります。

    autoplaySpeed: 3000

    スライダーが停止してスクロールを開始するまでの時間を指定できるオプションです。JavaScriptではミリ秒という単位を使うので、3000であれば3秒ということになります。

    このオプションはautoplayがtrueの場合のみ有効になります。