Web制作 スライダー

slickの前へ次への矢印をカスタマイズする方法【画像変更も紹介】

slickの矢印ってカスタマイズ出来ない?

今回はそんな疑問にお答えします。

slickのスライダーはデフォルトで前へ、次への矢印画像が表示されますが、デザイン通りに実装する場合はCSSでカスタマイズしたり画像に変更したりしたい場合があると思います。

今回はCSSでのカスタマイズ方法と、画像に変更する方法について解説していきます。

矢印の画像を変更する方法

まずは変更前の状態を見てみます。

See the Pen
矢印の変更(画像変更前)
by junpei (@junpei-sugiyama)
on CodePen.

特に変わった点はなく、slickのオプションで使用したのは以下の2つです。

autoplay自動再生(初期値:false)
adaptiveHeightスライドの高さの自動調整(初期値:false)

そして現在表示されている矢印はデフォルトの物になります。

背景が白いと見えなくなるので、背景は暗くしています。

 

矢印を画像に変更

それでは次に画像に変更した物を見てみます。

See the Pen
矢印の変更
by junpei (@junpei-sugiyama)
on CodePen.


CSSで矢印の位置を調整しています。

追記したslickのオプションは以下になります。

オプション名内容初期値
prevArrow前矢印のカスタマイズ<button type=”button” class=”slick-prev”>Previous</button>
nextArrow次矢印のカスタマイズ<button type=”button” class=”slick-next”>Next</button>

これだけ見ても分かりにくいので、コードで見てみます。

$(function () {
  $(".slider").slick({
    autoplay: true,
    adaptiveHeight: true,
    prevArrow: '<img src="画像のパス" class="slide-arrow prev-arrow">',
    nextArrow: '<img src="画像のパス" class="slide-arrow next-arrow">',
  });
});

画像のパス以外にclass名を指定しています。

  • slide-arrow → 前へ次へ共通のclass名
  • prev-arrow → 前への矢印のclass名
  • next-arrow → 次への矢印のclass名
class名を付ける際の注意点
prevArrowに「slick-prev」、nextArrowに「slick-next」と付けてしまうと、slick自体が持つclass名と同じになってしまいそのスタイルが適用されてしまいます。

補足ですが、この矢印の画像はicooon-monoというサイトからダウンロードした物です。

このサイトについては以下の記事を参照下さい。

フリーアイコン素材サイト icooon-monoの使い方

 

矢印をCSSでカスタマイズする方法

次はCSSで作った三角形にしてみたいと思います。

CSSで三角形を作る方法はこちらの記事を参照下さい。

CSSで出来る三角形の作り方

まずは完成形を見てみましょう。

See the Pen
slick矢印の変更(CSS)
by junpei (@junpei-sugiyama)
on CodePen.


CSSはこのようになっています。

.slide-arrow {
  background-color: #333;
  bottom: 0;
  height: 0;
  margin: auto;
  position: absolute;
  top: 0;
  width: 0;
}
.prev-arrow {
  border-bottom: 10px solid #333;
  border-left: 0;
  border-right: 10px solid #fff;
  border-top: 10px solid #333;
  left: -25px;
}
.next-arrow {
  border-bottom: 10px solid #333;
  border-left: 10px solid #fff;
  border-right: 0;
  border-top: 10px solid #333;
  right: -25px;
}
button {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  outline: none;
  padding: 0;
}

今回CSSで三角形を表現していますが、それはprev-arrowとnext-arrowのborder部分になります。

あと最後のbuttonではデフォルトで設定されているスタイルを打ち消しています。

 

以上になります。

-Web制作, スライダー
-