【WordPress】画像スライダー(slick)を実装する方法(サンプルコードあり)

広告:ページ内にてアフィリエイト広告を利用しています。

Slick 画像スライダー使う方法

右に左に画像やロゴをスライドさせるとカッコイイ演出になりますね。しかし、一体どうしたらスライドさせられるのでしょう?実は覚えてしまえば簡単です。

以下のようなロゴスライダーなど、簡単に作れます。

1
2
3
4
5
6
7
8
9
ポイント

本記事では、

画像スライダー(slick)を実装する方法を解説します。

ぐらんぐらんスライドさせちゃいましょう!

おすすめ副業

\ココナラ成功パターンを詳しく見たい方は こちら をクリックしてください/

目次
PR

画像スライダーのサンプル

Point.
スライダー
サンプル

実際にスライダー(slick)を実装したサンプルです。イメージにマウスを重ねると、イメージがちょっと動く仕掛けを入れています。


1
2
3
4
5
6
7
8
9
10

画像スライダーの作り方(基本)

Point.
スライダー
作り方(基本)

単純に画像を並べてスライドさせる作り方です。(マウスホバーで画像が変わる処理はありません)

Slick スライダーを初期化している間の「loading…」画像の表示は行います。

サンプル(基本)

1
2
3
4
5
6
7
8
9
10

■ ライブラリとCSSの読み込み

読み込み

スライダーを使うための CSS とライブラリー(※)を読み込みます。

(※ “Slick” は、多機能でカスタマイズ可能な jQuery のスライダーです。ライブラリ=jQuery を読み込みます)

<!-- スライダー用の CSS -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/slick-carousel@1.8.1/slick/slick.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick-theme.css">

<!-- ライブラリを読み込む -->
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/slick-carousel@1.8.1/slick/slick.min.js"></script>

「cdn.jsdelivr.net」から Slick スライダーを使うためのライブラリーを読み込みます。固定ページや投稿ページで使う場合、「カスタムHTML」ブロックを配置して、上記のコードを貼り付けてください。

■ 画像をメディアライブラリに設置

画像を設置

スライダーに表示するための画像(一覧に表示するための画像と、「loading…」画像(アニメーション gif で作成)は前もってメディアライブラリに読み込ませておきます。

メディアライブラリ

メディアライブラリに登録したら、イメージファイルのURLを取得してきます。各イメージをクリックして詳細を表示します。

イメージファイルの URL を取得する。

右下のファイルのURLから「イメージファイルの URL」を取得します。忘れずに「loading…」画像のURLも記録しておいてください。

■ HTML 部分

HTML 部分

スライダーの HTML 部分です。「loadning…」画像と、スライダーで利用するイメージファイルを用意しています。

(WordPress で利用する場合は、「カスタムHTML」ブロックなどで設置します)

<!-- loading メッセージ -->
<div class="mySlickLoadingMessage"><img src="https://xxxx/xxxx_loading.gif"></div>

<div class="mySlick">
  <div class="mySlick_item"><img src="https://xxxx/xxx1.png" alt="" width="120" height="120""></div>
  <div class="mySlick_item"><img src="https://xxxx/xxx2.png" alt="" width="120" height="120""></div>
  <div class="mySlick_item"><img src="https://xxxx/xxx3.png" alt="" width="120" height="120""></div>
  <div class="mySlick_item"><img src="https://xxxx/xxx4.png" alt="" width="120" height="120""></div>
  <div class="mySlick_item"><img src="https://xxxx/xxx5.png" alt="" width="120" height="120""></div>
  <div class="mySlick_item"><img src="https://xxxx/xxx6.png" alt="" width="120" height="120""></div>
  <div class="mySlick_item"><img src="https://xxxx/xxx7.png" alt="" width="120" height="120""></div>
  <div class="mySlick_item"><img src="https://xxxx/xxx8.png" alt="" width="120" height="120""></div>
</div>

「loading…」イメージのURLと、slick スライダーで利用する各イメージのURLを並べています。クラス名は必要に応じて変えてください。

■ CSS 部分

CSS 部分

スライダーの CSS 部分です。

(WordPress で利用する場合は、「カスタムHTML」ブロックなどで設置します)

<style>
/* ******************************* */
/* スライダー */
.mySlick {
  width : 100%;
  opacity: 0;
  height : 0px;
}

/* フェードインのアニメーション */
.mySlickFadein {
    animation: mySlickFadeInAnimation 3s ease forwards;
}

@keyframes mySlickFadeInAnimation {
  from {
    opacity: 0;
    height : 120px;
  }
  to {
    opacity: 1;
    height : 120px;
  }
}

/* イメージ */
.mySlick_item {
  margin-right: 5px;
  margin-left: 5px;
}

.mySlick_item img {
  width: 120px;
  height: auto;
}

/* loading メッセージ */
.mySlickLoadingMessage {
  display: block;
  text-align : center;
  height : 120px;
  font-size : 20px;
  padding-top : 12px;
  margin-bottom : 0px !important;
}
</style>

イメージやスライダーのサイズ(横・縦)を指定しています。スライダーの初期化終了後に「loading…」イメージは消えてスライダーをフェードインで表示させるため、そのアニメーションも定義しています。

■ JavaScript 部分

JavaScript 部分

スライダーの JavaScript 部分です。

(WordPress で利用する場合は、「カスタムHTML」ブロックなどで設置します)

<script>
// スライダーの初期化
$(document).ready(function(){
  // スライダーの初期化
  $(".mySlick").slick({
    autoplay: true,
    autoplaySpeed: 0,
    speed: 5000,
    cssEase: 'linear',
    slidesToShow: 3,
    swipe: false,
    pauseOnFocus: false,
    pauseOnHover: false,
    arrows: false,
    variableWidth: true
  }).on('afterChange', function(){
    // スライダーの初期化が完了したらフェードインさせる
    $('.mySlick').addClass('mySlickFadein');
    // loading メッセージを非表示にする
    $('.mySlickLoadingMessage').hide();
  });
});
</script>
  • 「$(“.mySlick”).slick」で Slick スライダーの定義をしています
  • 「on(‘afterChange’……」が初期化終了後を表します(正確には初期化収量は init ですが、ここでは afterChange を使っています)
  • 「$(‘.mySlick’).addClass(‘mySlickFadein’);」で、Slick スライダーをフェードインで表示させます
  • 「$(‘.mySlickLoadingMessage’).hide();」で、「loading…」メッセージを非表示にします

画像スライダーの作り方(応用)

Point.
スライダー
作り方(応用)

画像を並べてスライドさせ、かつマウスオーバーで画像を切り替えます。メインの画像が上側にあり、マウスホバーした対象の画像にメインの画像も切り替わります。

  • マウスホバー時の動くアニメーションは「アニメーション gif」を用意しています

サンプル(応用)


1
2
3
4
5
6
7
8
9
10

■ ライブラリとCSSの読み込み

読み込み

スライダーを使うための CSS とライブラリー(※)を読み込みます。(ここは基本編と一緒です)

<!-- スライダー用の CSS -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/slick-carousel@1.8.1/slick/slick.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick-theme.css">

<!-- ライブラリを読み込む -->
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/slick-carousel@1.8.1/slick/slick.min.js"></script>

「cdn.jsdelivr.net」から Slick スライダーを使うためのライブラリーを読み込みます。固定ページや投稿ページで使う場合、「カスタムHTML」ブロックを配置して、上記のコードを貼り付けてください。

■ 画像をメディアライブラリに設置

画像を設置

スライダーに表示するための画像(一覧に表示するための画像と、マウスホバー時のアニメーション gif 画像、「loading…」画像(アニメーション gif で作成)は前もってメディアライブラリに読み込ませておきます。

メディアライブラリに登録したら、イメージファイルのURLを取得してきます。各イメージをクリックして詳細を表示します。

画像ファイル名
通常の画像mySlick_image1.png
マウスホバー時の画像mySlick_image1_hover.gif

今回のサンプルでは、画像のファイル名(URLのファイル名部分)を、通常時は「.png」、マウスホバー時は「_hover.gif」と切り替わるように(JavaScriptで)作っています。同じ(ような)ファイル名にしてください。

■ サンプルコード

サンプルコード

スライダーの サンプルコードです。HTML、CSS、JavaScript を全て一緒に記載します。

(WordPress で利用する場合は、「カスタムHTML」ブロックなどで設置します)

<!-- Main -->
<div style="text-align:center">
  <div class="mySlickNeoMainImage"><img src="https://xxxx/mySlick_image1_hover.gif"></div>
</div>

<br>

<!-- loading メッセージ -->
<div class="mySlickNeoLoadingMessage"><img src="https://xxxx/loading.gif"></div>

<div class="mySlickNeo">
  <div class="mySlickNeo_item">
    <img src="https://xxxx/mySlick_image1.png" alt="" width="120" height="120" onMouseOver="mySlickNeo_changeImage(this)" onMouseOut="mySlickNeo_resetImage(this)">
  </div>
  <div class="mySlickNeo_item">
    <img src="https://xxxx/mySlick_image2.png" alt="" width="120" height="120" onMouseOver="mySlickNeo_changeImage(this)" onMouseOut="mySlickNeo_resetImage(this)">
  </div>
  <div class="mySlickNeo_item">
    <img src="https://xxxx/mySlick_image3.png" alt="" width="120" height="120" onMouseOver="mySlickNeo_changeImage(this)" onMouseOut="mySlickNeo_resetImage(this)">
  </div>
  <div class="mySlickNeo_item">
    <img src="https://xxxx/mySlick_image4.png" alt="" width="120" height="120" onMouseOver="mySlickNeo_changeImage(this)" onMouseOut="mySlickNeo_resetImage(this)">
  </div>
  <div class="mySlickNeo_item">
    <img src="https://xxxx/mySlick_image5.png" alt="" width="120" height="120" onMouseOver="mySlickNeo_changeImage(this)" onMouseOut="mySlickNeo_resetImage(this)">
  </div>
  <div class="mySlickNeo_item">
    <img src="https://xxxx/mySlick_image6.png" alt="" width="120" height="120" onMouseOver="mySlickNeo_changeImage(this)" onMouseOut="mySlickNeo_resetImage(this)">
  </div>
  <div class="mySlickNeo_item">
    <img src="https://xxxx/mySlick_image7.png" alt="" width="120" height="120" onMouseOver="mySlickNeo_changeImage(this)" onMouseOut="mySlickNeo_resetImage(this)">
  </div>
  <div class="mySlickNeo_item">
    <img src="https://xxxx/mySlick_image8.png" alt="" width="120" height="120" onMouseOver="mySlickNeo_changeImage(this)" onMouseOut="mySlickNeo_resetImage(this)">
  </div>
</div>

<style>
/* ******************************* */
/* スライダー */
.mySlickNeo {
  width : 100%;
  opacity: 0;
  height : 0px;
}

/* フェードインのアニメーション */
.mySlickNeoFadein {
    animation: mySlickNeofadeInAnimation 3s ease forwards;
}

@keyframes mySlickNeofadeInAnimation {
  from {
    opacity: 0;
    height : 120px;
  }
  to {
    opacity: 1;
    height : 120px;
  }
}

/* イメージ */
.mySlickNeo_item {
  margin-right: 5px;
  margin-left: 5px;
}

.mySlickNeo_item img {
  width: 120px;
  height: auto;
}

/* loading メッセージ */
.mySlickNeoLoadingMessage {
  display: block;
  text-align : center;
  height : 120px;
  font-size : 20px;
  padding-top : 12px;
  margin-bottom : 0px !important;
}

</style>

<!-- SLICK の実装 -->
<script>
// イメージ切り替え
function mySlickNeo_changeImage(img) {
  img.src = img.src.replace(".png", "_hover.gif");

  var divElement = document.querySelector('.mySlickNeoMainImage img');
  divElement.src = img.src;
}

function mySlickNeo_resetImage(img) {
  img.src = img.src.replace("_hover.gif", ".png");
}

// スライダーの初期化
$(document).ready(function(){
  // スライダーの初期化
  $(".mySlickNeo").slick({
    autoplay: true,
    autoplaySpeed: 0,
    speed: 5000,
    cssEase: 'linear',
    slidesToShow: 3,
    swipe: false,
    pauseOnFocus: false,
    pauseOnHover: false,
    arrows: false,
    variableWidth: true
  }).on('afterChange', function(){
    // スライダーの初期化が完了したらフェードインさせる
    $('.mySlickNeo').addClass('mySlickNeoFadein');
    // loading メッセージを非表示にする
    $('.mySlickNeoLoadingMessage').hide();
  });
});
</script>

イメージのURLやクラス名は必要に応じて変えてください。

  • クラス名「mySlickNeoMainImage」の要素がメイン画像です
  • 各イメージに「onMouseOver」、「onMouseOut」を追加して JavaScript でマウスのホバーお検知しています
  • JavaScript で “.png” ⇔ “_hover.gif” のファイル名変換を行っています
  • マウスがホバーしたら、メインの画像も JavaScript で変えています

Slick のコアオプションとイベント

Point.
Slick の設定と
イベント

JavaScript 部分で利用できる、Slick の設定(コアオプション)とイベントを記載しておきます。

Slick で利用できる設定(コアオプション)です。

設定概要ディフォルト値
accessibilityスライダーがキーボードによる操作をサポートするかどうかを指定します。true
adaptiveHeightスライダーの高さを自動的に調整するかどうかを指定します。false
autoplayスライダーが自動的に再生されるかどうかを指定します。false
autoplaySpeed自動再生の速度(ミリ秒単位)を指定します。3000
arrows前後の矢印ナビゲーションを表示するかどうかを指定します。true
asNavFor同期させる他のスライダーを指定します。
appendArrows矢印ナビゲーションを追加する要素を指定します。
appendDotsドットナビゲーションを追加する要素を指定します。
prevArrow前のスライドに移動するためのカスタム矢印を指定します。<button type=”button” class=”slick-prev”>Previous</button>
nextArrow次のスライドに移動するためのカスタム矢印を指定します。<button type=”button” class=”slick-next”>Next</button>
centerMode現在のスライドを中央に配置するかどうかを指定します。false
centerPadding中央のスライドの左右に追加されるパディングを指定します。50px
cssEaseスライドアニメーションのイージングを指定します。ease
customPagingドットナビゲーションのカスタム関数を指定します。
dotsドットナビゲーションを表示するかどうかを指定します。false
dotsClassドットナビゲーションのCSSクラスを指定します。slick-dots
draggableドラッグ操作を許可するかどうかを指定します。true
fadeスライドアニメーションをフェードに変更するかどうかを指定します。false
focusOnSelect選択したスライドにフォーカスを移動するかどうかを指定します。false
easingjQueryのイージング関数を指定します。linear
edgeFrictionスライダーのエッジでの抵抗力を指定します。0.15
infiniteスライダーが無限にループするかどうかを指定します。true
initialSlide初期表示するスライドのインデックスを指定します。0
lazyLoad遅延読み込みの方法を指定します。null
mobileFirstモバイルファーストデザインを使用するかどうかを指定します。false
pauseOnFocusフォーカスが当たると自動再生を一時停止するかどうかを指定します。true
pauseOnHoverホバーすると自動再生を一時停止するかどうかを指定します。true
pauseOnDotsHoverドットナビゲーションにホバーすると自動再生を一時停止するかどうかを指定します。false
respondToスライダーが反応する方法を指定します。window
responsiveレスポンシブ設定を指定します。
rows行の数を指定します。1
rtl右から左にスライドするかどうかを指定します。false
slideスライド要素のセレクターを指定します。
slidesPerRow行ごとのスライド数を指定します。1
slidesToShow表示するスライド数を指定します。1
slidesToScrollスクロールするスライド数を指定します。1
speedスライドアニメーションの速度(ミリ秒単位)を指定します。300
swipeスワイプ操作を許可するかどうかを指定します。true
swipeToSlideスライドに直接スワイプするかどうかを指定します。false
touchMoveタッチ移動を許可するかどうかを指定します。true
touchThresholdスライドを移動させるために必要なタッチのしきい値を指定します。5
useCSSCSSによるアニメーションを使用するかどうかを指定します。true
useTransformCSS3変換を使用するかどうかを指定します。true
variableWidthスライドの幅を可変にするかどうかを指定します。false
vertical縦方向にスライドするかどうかを指定します。false
verticalSwiping縦方向のスワイプを許可するかどうかを指定します。false
waitForAnimateアニメーションが完了するまで次の操作を待つかどうかを指定します。true
zIndexスライダーのz-indexを指定します。1000

Slick で利用できる設定(コアオプション)です。

イベント概要
afterChangeスライドが変更された後のコールバック。
beforeChangeスライドが変更される前のコールバック。
init初期化後のコールバック。
reInit再初期化後のコールバック。
setPosition任意の位置変更後のコールバック。
swipeスワイプ後のコールバック。
edgeエッジに到達したときのコールバック。
lazyLoaded画像が遅延読み込みされたときのコールバック。
lazyLoadError遅延読み込みが失敗したときのコールバック。

いろいろ工夫して、おしゃれでかっこいい Slick スライダーを作ってみてください。

WordPress もっと!お役立ちテクニック

WordPress のお役立ちテクニックはこちら

PR

まとめ:画像スライダー(slick)を実装する方法

Point.
Slick スライダー
まとめ

Slick スライダーを効果的に使えるとサイトが一段とクールになりますよね。しかし、一見難しそうに見えます。実際には、Slick スライダーは jQuery が用意されていますので、CSS と JavaScript を定型的に記載することで利用することが可能です。

ポイント
  • Slick スライダーは ライブラリー(jQuery) を使う
  • HTML と CSS と JavaScript でサンプルのとおり書くことで利用できる
  • コアオプションやイベントが多数用意されているので独自カスタマイズも可能

たのしいサイト、魅力的なサイトをどんどん作ってくださいね。

この副業
アフィリエイトスクール
ノートパソコン

ブログの作り方などについてココナラにて「支援作業」を販売しております。

よかったらご利用くださいませ。

もっと WordPress のノウハウを知りたいときは
クリックアイコン

PR

PR
広告の設置・収入について

当サイトは Amazonのアソシエイトとして、適格販売により収入を得ています。

当サイトは Google アドセンスを利用し、広告により収入を得ています。

当サイトは ASP が提供するサービスを利用し、広告、適格販売により収入を得ています。

電気通信事業法改正に伴う表記

目次