slick.jsのスライダーの矢印をカスタマイズする方法

jQuery


slickスライダーで矢印を任意の画像でカスタマイズしたい時があると思います。
当記事ではその方法をデモを交えながら解説します。

通常のslickスライダーはご理解されている前提で進めていきますので、
「slickスライダー初めて」という方はまずこちらからご参考に頂ければと思います。
slick.jsでシンプルなスライダーを実装する方法【たった4ステップです】



①デフォルトの矢印付きのslickスライダーを実装

わかりやすいようにデフォルトの矢印付きのslickスライダーを作成して、
そこから変更を加えていきます。

<div class="slider">   
    <div><img src="./img/slider_img01.jpg"></div>
	  <div><img src="./img/slider_img02.jpg"></div>   
	  <div><img src="./img/slider_img03.jpg"></div>
</div>


<style>
  /*--スライダーの位置とサイズ調整--*/
  .slider{
	width:80%;
	margin:0 auto;
  }

  /*--------画像サイズ調整---------*/
  img{
	width:100%;
  }
  
  /*-----------height調整----------*/
  .slick-slide{
	  height:auto!important;
  }

  /*-----------矢印表示----------*/
  .slick-next{
    right:0!important;
  }
  .slick-prev{
    left:0!important;
  }
  .slick-arrow{
    z-index:2!important;
  }
/*------------------------------*/
</style>



<link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick.css"/>
<link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick-theme.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick.min.js"></script>


<script>
	$('.slider').slick({
	    autoplay: true,         //自動再生
	    autoplaySpeed: 2000,   //自動再生のスピード
	    speed: 800,		  //スライドするスピード
	    dots: true,      //スライドしたのドット
	    arrows: true,          //左右の矢印
	    infinite: true,    //スライドのループ
	    pauseOnHover: false,   //ホバーしたときにスライドを一時停止しない 
	});
</script>




②デフォルトの矢印を消す

.slick-arrow:before{
	content:""!important;
}




③矢印を任意の画像にする

 .slick-arrow:before{
    content:""!important;
    width: 100%!important;
    height: 100%!important;
    position: absolute;
    top: 0;
    left: 0;
  }

  .slick-next:before{
    background: url(img/arrow_r.png)!important;
    background-size: contain!important;
  }

  .slick-prev:before{
    background: url(img/arrow_l.png)!important;
    background-size: contain!important;
  }


3,4行目は後で親要素で調整できるようにwidthとheightを100%に、
5~7行目は疑似要素はposition:absluteしないと(確か)出てこないのでつけて、
11,12行目と16,17行目で任意の画像を埋め込んでいます。

background-sizeはなぜか共通クラスに埋め込むと効かないので、
それぞれに入れています。




④矢印のサイズと位置を調整する

  .slick-arrow{
    z-index:2!important;
    width:60px!important;
    height:60px!important;
  }

 .slick-next{
    right:-30px!important;
  }

 .slick-prev{
    left:-30px!important;
  }


3,4行目でサイズを、8行目と12行目で位置を調整しています。




⑤矢印の半透明をなくす

デフォルトでは『opacity: 0.75』が入っているみたいなので上書きします。

 .slick-arrow:before{
    opacity:1!important;
  }



なんかカッコ悪くなりましたが以上の手順でslick.jsのスライダーの矢印を任意の画像でカスタマイズできました。
slick.jsのスライダーに関しては以下の記事なども残してますので、必要でしたらご参考ください。



slick.jsのスライダーで両端をチラ見せする方法
slick.jsのスライダーでドットをカスタマイズする方法




最後にコードを全文載せておきます。
コピペして画像パスを変えるだけでが矢印を好きな画像にできると思います。

<div class="slider">
	<div><img src="./img/slider_img01.jpg"></div>
	<div><img src="./img/slider_img02.jpg"></div>   
	 <div><img src="./img/slider_img03.jpg"></div>
</div>

<style>
  /*--スライダーの位置とサイズ調整--*/
  .slider{
	width:80%;
	margin:0 auto;
  }

  /*--------画像サイズ調整---------*/
  img{
	width:100%;
  }
  
  /*-----------height調整----------*/
  .slick-slide{
	  height:auto!important;
  }

  /*-----------矢印表示----------*/
  .slick-next{
    right:-30px!important;
  }
  .slick-next:before{
    background: url(img/arrow_r.png)!important;
    background-size: contain!important;
  }
  .slick-prev{
    left:-30px!important;
  }
  .slick-prev:before{
    background: url(img/arrow_l.png)!important;
    background-size: contain!important;
  }
  .slick-arrow{
    z-index:2!important;
    width:60px!important;
    height:60px!important;
  }
  .slick-arrow:before{
    content:""!important;
    width: 100%!important;
    height: 100%!important;
    position: absolute;
    top: 0;
    left: 0;
    opacity:1!important;
  }
/*------------------------------*/
</style>


<link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick.css"/>
<link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick-theme.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick.min.js"></script>


<script>
	$('.slider').slick({
	    autoplay: true,         //自動再生
	    autoplaySpeed: 2000,   //自動再生のスピード
	    speed: 800,		  //スライドするスピード
	    dots: true,      //スライドしたのドット
	    arrows: true,          //左右の矢印
	    infinite: true,    //スライドのループ
	    pauseOnHover: false,   //ホバーしたときにスライドを一時停止しない 
	});
</script>





コメント

タイトルとURLをコピーしました