slick Web制作 スライダー

【slick】横方向に流れ続ける無限ループスライダーを作る方法

2021年2月6日

※ 当サイトではアフィリエイト広告を利用しています

slickで横に流れ続ける無限ループスライダーってどうやるの?

スライダーはスライドが切り替わるだけでなく、常に定速で流れ続ける無限ループスライダーも作る事が出来ます。

今回は、slickを使って無限ループスライダーを作る方法を、コードとデモを使って解説していきます(逆方向も可能)

slickの基本的な使い方と、slickを使うのに必要なjQueryの使い方については以下の記事を参照下さい。

あわせて読みたい
レスポンシブ対応のスライダープラグイン slickの使い方
レスポンシブ対応のスライダープラグイン slickの使い方

続きを見る

あわせて読みたい
【初心者向け】jQueryとは?CDNを使った本体の読み込み方についても分かりやすく解説
【初心者向け】jQueryとは?CDNを使った本体の読み込み方も分かりやすく解説

続きを見る

またslickには色々カスタマイズが出来るオプションがあるので、そちらも合わせて活用すると実装出来るスライダーの幅が広がります。

あわせて読みたい
【slick】カスタマイズ用オプションまとめ一覧
【slick】カスタマイズ用オプションまとめ一覧

続きを見る

 

完全無料のプログラミングスクール『ZeroPlus Gate』
30日間でWeb制作を学べる無料のプログラミングスクールがこちら
  • 完全無料
  • 30日間でWeb制作を学べる
  • 現役エンジニアへの質問無制限
  • オンラインの動画学習なので時間場所を問わず勉強可能
  • 最大4回の学習サポート面談
  • 毎日人数制限ありの先着制
無料なのに専属のメンターが付き、現役エンジニアへの質問も無制限という破格のサービスです。いきなり数十万するプログラミングスクールは厳しい・・・という人のお試しに最適。
現在は無料ですがいつ有料になるか分からないので、気になる方はお早めに👇
(有料になっていたらすいません🙇‍♂️)

\ 完全無料 /

ZeroPlus Gate公式サイト

毎日先着制!

slickで横方向に流れ続ける無限ループスライダーを作る方法

スライダーを実装するにはプラグインを使う人が多いと思いますが、今回はslickというプラグインを使用します(Swiperでも可能)

 

HTMLのコード

HTMLの書き方ですが、特に変わった点はありません。

<div class="slider">
  <div><img src="画像パス1" alt="" /></div>
  <div><img src="画像パス2" alt="" /></div>
  <div><img src="画像パス3" alt="" /></div>
  <div><img src="画像パス4" alt="" /></div>
  <div><img src="画像パス5" alt="" /></div>
  <div><img src="画像パス6" alt="" /></div>
</div>

CSSもimgのwidthを100%にしただけで、重要なのはjQueryの部分となります。

 

jQueryのコード

jQueryの書き方は、以下の通りです。

$(function(){
  $('.slider').slick({
    autoplay: true, // 自動でスクロール
    autoplaySpeed: 0, // 自動再生のスライド切り替えまでの時間を設定
    speed: 5000, // スライドが流れる速度を設定
    cssEase: "linear", // スライドの流れ方を等速に設定
    slidesToShow: 4, // 表示するスライドの数
    swipe: false, // 操作による切り替えはさせない
    arrows: false, // 矢印非表示
    pauseOnFocus: false, // スライダーをフォーカスした時にスライドを停止させるか
    pauseOnHover: false, // スライダーにマウスホバーした時にスライドを停止させるか
    responsive: [
      {
        breakpoint: 750,
        settings: {
          slidesToShow: 3, // 画面幅750px以下でスライド3枚表示
        }
      }
    ]
  });
});

このコードを、1つずつ解説していきます。

 

autoplay: true

これは自動再生の設定です。

デフォルトがfalseなので、trueにしないと自動再生しません。

 

autoplaySpeed: 0

これは、スライドが切り替わってから次に動き出すまでの時間で、デフォルトでは3000ミリ秒となっています。

通常のスライダーは画像が切り替わったら何秒か止まって表示させてると思いますが、この数値がデフォルトでは3秒(3000ミリ秒)って事ですね。

今回は無限ループさせたいので、0にしています。

 

speed: 5000

これは、スライドが流れる速度となります。

具体的には、1枚の画像の端から端までの時間となります。

今回は5000ミリ秒(5秒)に設定したので、時間を計ってみて下さい。

ちなみに50ミリ秒とかにすると、超高速になりますw

 

cssEase: "linear"

これは画像切り替えのイージングとなり、以下の種類があります。

  • ease
  • linear
  • ease-in
  • ease-out
  • ease-in-out

イージングとは、動きの最初が早くて最後がゆっくりだったり、動きに変化を付ける設定の事です。

デフォルトはeaseになっていますが、今回は一定のスピードでループさせたいので等速で動くlinearにしています。

 

slidesToShow: 4

これは、一度に表示するスライドの枚数です。

ケースに応じて変更可能です。

 

swipe: false

これは、スワイプ出来るようにするかという設定です。

デフォルトではtrueでスワイプできる設定なので、ここでは出来ない設定にしています。

 

arrows: false

これはスライド前後に表示される矢印ですが、無限ループでは不要なので非表示にしています(デフォルトではtrue)

 

pauseOnFocus: false

これはスライダーをフォーカス(クリック)したときに、一時停止させるかどうかです。

デフォルトのtrueだとクリックしたら画像の端に来た時に一時停止してしまうので、falseにしてクリックされても流れ続けるようにしています。

 

pauseOnHover: false

これは、スライダーにマウスカーソルを乗せた時に一時停止させるかどうかです。

これも停止させずに流し続けたいので、falseにしています。

 

responsive

レスポンシブは無限ループとは無関係ですが、今回の例で言えば750pxを境にスライダーに表示される画像が4枚から3枚になるように設定しています。

ブログで見た際は750px以下だと思うので、スライドは3枚になっているかと思います。

slickの無限ループスライダーのサンプル(デモ)

それでは、最後にサンプル(デモ)を見てみましょう。

See the Pen
無限ループスライダー
by junpei (@junpei-sugiyama)
on CodePen.

 

左から右に流れるようにするには(逆向き)

スライダーはデフォルトで右から左に流れるようになっていますが、逆向きにすることも出来ます。

まずは、sliderというclassを付けた所にdir="rtl"を追記します。

<div class="slider" dir="rtl">
  <div><img src="画像パス1" /></div>
  <div><img src="画像パス2" /></div>
  <div><img src="画像パス3" /></div>
  <div><img src="画像パス4" /></div>
  <div><img src="画像パス5" /></div>
  <div><img src="画像パス6" /></div>
</div>

そして、jQueryにはrtl: true,を追記します。

ここでjQueryにこのコードを追記しないとスライダーが機能しなくなるので注意

全体で見るとこうなります。

$(function () {
  $(".slider").slick({
    autoplay: true, // 自動でスクロール
    autoplaySpeed: 0, // 自動再生のスライド切り替えまでの時間を設定
    speed: 5000, // スライドが流れる速度を設定
    cssEase: "linear", // スライドの流れ方を等速に設定
    slidesToShow: 4, // 表示するスライドの数
    swipe: false, // 操作による切り替えはさせない
    arrows: false, // 矢印非表示
    pauseOnFocus: false, // スライダーをフォーカスした時にスライドを停止させるか
    pauseOnHover: false, // スライダーにマウスホバーした時にスライドを停止させるか
    rtl: true, // スライダーを左から右に流す(逆向き)
    responsive: [
      {
        breakpoint: 750,
        settings: {
          slidesToShow: 3,
        },
      },
    ],
  });
});

こちらが逆向きのサンプル(デモ)です。

See the Pen
無限ループスライダー(逆向き)
by junpei (@junpei-sugiyama)
on CodePen.

また、もう一つスライダーで有名なプラグイン、Swiperを使った場合の無限ループスライダーはこちらで解説しています。

あわせて読みたい
【Swiper】横方向に流れ続ける無限ループスライダーを作る方法
【Swiper】横方向に流れ続ける無限ループスライダーを作る方法

続きを見る

関連記事slick記事一覧
関連記事Swiper記事一覧
関連記事Splide記事一覧

この記事が役に立ったと思ったら、シェアボタンからX(旧Twitter)などにシェアすると、いいねされてフォロワーが増えたりすることがあるよ!

 

  • この記事を書いた人

じゅんぺい

37歳からWeb制作とブログ開始。Web制作歴5年目でコーディングとWordPressオリジナルテーマ制作が中心。これまで120件以上を納品。当ブログ月間最高15万PVで、370記事以上はWeb制作の技術記事。コンテンツ販売→累計売上1200万円&1500部超え。X(旧Twitter)フォロワー7200人以上。2024年3月からブログの経験を活かしてライターとしても活動を開始。

-slick, Web制作, スライダー