Webサイトでよく見かける、画像が横に切り替わるスライダー。Slick(Slick Slider)は、jQueryを使ったスライダーの定番で、数行のコードで実装できます。
Slickは2018年ごろから長く更新が止まっていましたが、開発が再開し、2026年9月にjQuery 4に対応したv2.0.0が公開されました。この記事では、最新の2.0.0を使ったコピペで動くコードと、よく使う設定、つまずきやすいところをまとめます。
この記事の内容は、2026年10月時点のSlick 2.0.0とjQuery 4.0.0で確認しています。オプションの初期値は、2.0.0のソースコードで確認したものです。
完成イメージ

1枚ずつ横にスライドする基本の形のほかに、フェードで切り替える、複数枚を並べて流す、サムネイルと連動させる、といった使い方ができます。
使うバージョンの選び方
SlickはjQueryのプラグインなので、jQueryのバージョンによって使うSlickのバージョンが変わります。
| 使っているjQuery | Slickのバージョン |
|---|---|
| jQuery 4(2026年1月公開) | 2.0.0 |
| jQuery 3以前 | 公式のREADMEでは1.8.1を案内 |
2026年1月に公開されたjQuery 4では、古い関数がいくつか削除されました。1.8.1は、そのうちの$.type()を初期化の処理の中で使っているため、jQuery 4と組み合わせると、初期化の時点でエラーになり、スライダーが動きません。古い記事のコードをコピペして動かない場合は、まずここを疑ってください。
これから新しく作るなら、jQuery 4とSlick 2.0.0の組み合わせがおすすめです。
コピペで動くコード(Slick 2.0.0)
下のコードをHTMLファイルとして保存し、同じ階層にimgフォルダを作ってslide01.jpg〜slide04.jpgを置けば動きます。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Slick</title>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/slick-carousel@2.0.0/slick/slick.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/slick-carousel@2.0.0/slick/slick-theme.css">
<style>
body { margin: 0; }
.slider { width: 90%; margin: 40px auto; }
.slider img { display: block; width: 100%; }
</style>
</head>
<body>
<div class="slider">
<div><img src="img/slide01.jpg" alt=""></div>
<div><img src="img/slide02.jpg" alt=""></div>
<div><img src="img/slide03.jpg" alt=""></div>
<div><img src="img/slide04.jpg" alt=""></div>
</div>
<script src="https://code.jquery.com/jquery-4.0.0.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/slick-carousel@2.0.0/slick/slick.min.js"></script>
<script>
jQuery(function ($) {
$('.slider').slick({
dots: true,
autoplay: true,
autoplaySpeed: 4000
});
});
</script>
</body>
</html>
読み込むファイルは次の4つです。
slick.css:スライダーが動くために必要なCSS(必須)slick-theme.css:矢印やドットの見た目(なくても動く。自分でデザインするなら外してよい)- jQuery:Slickより先に読み込む
slick.min.js:Slick本体
jQuery 3のサイトで使う場合は、URLの
slick-carousel@2.0.0をslick-carousel@1.8.1に変えてください。
よく使うオプション
オプションは$('.slider').slick({ ... })の中に書きます。よく使うものをまとめました。
| オプション | 内容 | 初期値 |
|---|---|---|
slidesToShow |
一度に表示する枚数 | 1 |
slidesToScroll |
一度に動かす枚数 | 1 |
autoplay |
自動で切り替える | false |
autoplaySpeed |
自動で切り替える間隔(ミリ秒) | 3000 |
speed |
切り替えにかける時間(ミリ秒) | 500 |
arrows |
前後の矢印を表示する | true |
dots |
下にドット(何枚目か)を表示する | false |
infinite |
最後まで行ったら最初に戻る(ループ) | true |
fade |
スライドではなくフェードで切り替える | false |
centerMode |
中央の1枚を目立たせ、左右を少し見せる | false |
pauseOnHover |
マウスを乗せたら自動再生を止める | true |
responsive |
画面幅ごとに設定を変える | null |
すべてのオプションは公式サイトにあります。
よく使うパターン
フェードで切り替える(ファーストビュー向け)
$('.slider').slick({
fade: true,
autoplay: true,
autoplaySpeed: 5000,
speed: 1000,
arrows: false,
pauseOnHover: false
});
ファーストビューのメイン画像では、矢印を消してフェードで切り替えることが多いです。pauseOnHoverをfalseにすると、マウスを乗せても止まらなくなります。
画面幅で表示枚数を変える
パソコンでは3枚、タブレットでは2枚、スマホでは1枚並べる例です。
$('.slider').slick({
slidesToShow: 3,
slidesToScroll: 1,
dots: true,
responsive: [
{
breakpoint: 1024,
settings: { slidesToShow: 2 }
},
{
breakpoint: 768,
settings: { slidesToShow: 1, arrows: false }
}
]
});
Slickのbreakpointは、初期設定では「その幅以下」のときに使われます。いちばん外側にパソコンの設定を書き、responsiveで狭い画面の設定を上書きしていくと考えると分かりやすいです(mobileFirst: trueにすると、逆に「その幅以上」になります)。
サムネイルと連動させる
const $slider = $('.gallery__slider');
$slider.slick({
fade: true,
arrows: false
});
// サムネイルにマウスを乗せたら、同じ番号のスライドに切り替える
$('.gallery__thumb').on('mouseenter', function () {
$slider.slick('slickGoTo', $(this).index());
});
slickGoToは、指定した番号(0から数える)のスライドに移動するメソッドです。ほかにもslickNext(次へ)、slickPrev(前へ)、slickPause(自動再生を止める)、slickPlay(再開する)などがあり、ボタンから操作したいときに使えます。
よくあるトラブル
Q. slick is not a functionというエラーが出ます
A. 次のどれかです。
- jQueryが読み込まれていない、またはSlickより後に読み込まれている。jQueryを先に読み込みます
- jQuery 4なのにSlick 1.8.1を使っている。この場合は
$.type is not a functionというエラーが出ることもあります。Slickを2.0.0にします - jQueryを2回読み込んでいて、Slickを読み込んだあとに2つ目のjQueryで上書きされている。WordPressのテーマでよく起きます(下の「WordPressで使うとき」を参照)
Q. 矢印が表示されません
A. slick-theme.cssの矢印は、色が白で、スライダーの外側(左右に25pxはみ出した位置)に置かれています。背景が白いページや、スライダーを画面いっぱいに広げている場合は、見えなくなります。
.slider .slick-prev { left: 10px; z-index: 1; }
.slider .slick-next { right: 10px; }
.slider .slick-prev::before,
.slider .slick-next::before { color: #333; }
Q. レイアウトが崩れます
A. Slickは初期化すると、スライドをdivで何重にも包みます。スライドをul / liで書いていると、自動で追加される要素とぶつかって崩れることがあるので、スライドはdivで書くのが無難です。また、初期化される前の一瞬、画像が縦に並んで見えることがあります。気になる場合は、.slider:not(.slick-initialized) > div:not(:first-child) { display: none; }のように、初期化されるまで2枚目以降を隠しておきます。
WordPressで使うとき
WordPressにはjQueryが同梱されています。自分で別のjQueryを読み込むと二重読み込みになり、Slickやほかのプラグインが動かなくなることがあります。
functions.phpで、WordPressのjQueryに依存させて読み込みます。
add_action( 'wp_enqueue_scripts', function () {
wp_enqueue_style( 'slick', 'https://cdn.jsdelivr.net/npm/slick-carousel@2.0.0/slick/slick.css', [], '2.0.0' );
wp_enqueue_style( 'slick-theme', 'https://cdn.jsdelivr.net/npm/slick-carousel@2.0.0/slick/slick-theme.css', [ 'slick' ], '2.0.0' );
wp_enqueue_script( 'slick', 'https://cdn.jsdelivr.net/npm/slick-carousel@2.0.0/slick/slick.min.js', [ 'jquery' ], '2.0.0', true );
} );
- WordPressのjQueryのバージョンは、ページのソースの
jquery.min.js?ver=の部分で確認できます。jQuery 3なら、上のコードの2.0.0を1.8.1に変えます - WordPressのjQueryでは
$がそのままでは使えないことがあるので、jQuery(function ($) { ... });の中に書きます
ほかのスライダーと比べたい場合
jQueryを使わないサイトならSwiper、背景画像をズームしながら切り替えたいならVEGASが向いています。違いは、こちらの記事で比較しています。
まとめ
- jQuery 4ならSlick 2.0.0、jQuery 3以前なら1.8.1。1.8.1はjQuery 4では初期化でエラーになる
- jQueryを先に読み込み、スライドは
divで書く - 画面幅ごとの設定は
responsive。初期設定では「その幅以下」に効く - 矢印が見えないときは、
slick-theme.cssの白い矢印がスライダーの外にあるのが原因 - WordPressではjQueryを二重に読み込まず、
wp_enqueue_script()の依存に'jquery'を指定する
