【ソーコード】番外編:プラグイン「slick」/カルーセルスライダー(カスタマイズ)
目次
※コーディングの解説はCSS、JavaScriptのコメントを参照
ディレクトリ構成
extra8
├─img
│ ├─mainvisual1.jpg
│ ├─mainvisual2.jpg
│ ├─mainvisual3.jpg
│ ├─mainvisual4.jpg
│ ├─mainvisual5.jpg
│ ├─mainvisual6.jpg
│ └─mainvisual7.jpg
│
├─css
│ └─style.css
│
├─js
│ └─main.js
│
└─index.html
HTML(index.html)
別タブで開く
index.html
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
<title>タイトル</title>
<meta name="description" content="テキストテキストテキストテキストテキストテキスト">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://unpkg.com/ress/dist/ress.min.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick-theme.min.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick.min.css">
<link rel="stylesheet" href="css/style.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick.min.js"></script>
<script src="js/main.js"></script>
</head>
<body>
<div class="content">
<ul id="slider">
<li><img src="img/mainvisual1.jpg" alt=""></li>
<li><img src="img/mainvisual2.jpg" alt=""></li>
<li><img src="img/mainvisual3.jpg" alt=""></li>
<li><img src="img/mainvisual4.jpg" alt=""></li>
<li><img src="img/mainvisual5.jpg" alt=""></li>
<li><img src="img/mainvisual6.jpg" alt=""></li>
<li><img src="img/mainvisual7.jpg" alt=""></li>
</ul>
</div>
</body>
</html>
CSS(style.css)
別タブで開く
style.css
@charset "UTF-8";
html {
font-size: 100%;
}
img {
max-width: 100%;
vertical-align: bottom;
}
ul {
list-style: none;
}
.content {
width: 100%;
}
#slider {
width: 100%;
margin: 0 auto;
position: relative;
}
/*
スライダー矢印(共通)
*/
#slider .prev,
#slider .next {
width: 40px;
height: 40px;
background-color: #fff;
cursor: pointer;
opacity: 0.7;
position: absolute;
top: 45%;
transition: 0.5s;
z-index: 10;
}
#slider .prev:hover,
#slider .next:hover {
opacity: 0.5;
}
#slider .prev::before,
#slider .prev::after,
#slider .next::before,
#slider .next::after {
content: "";
display: block;
width: 14px;
height: 2px;
background-color: #000;
position: absolute;
}
/*
スライダー左矢印
*/
#slider .prev {
left: 0;
}
#slider .prev::before,
#slider .prev::after {
left: 12px;
}
#slider .prev:before {
top: 37%;
transform: rotate(-45deg);
}
#slider .prev:after {
bottom: 37%;
transform: rotate(45deg);
}
/*
スライダー右矢印
*/
#slider .next {
right: 0;
}
#slider .next::before,
#slider .next::after {
right: 12px;
}
#slider .next:before {
top: 37%;
transform: rotate(45deg);
}
#slider .next:after {
bottom: 37%;
transform: rotate(-45deg);
}
/*-------------------------------------------
SP
-------------------------------------------*/
@media screen and (max-width: 900px) {
#slider .prev,
#slider .next {
top: 40%;
}
}
JavaScript(main.js)
別タブで開く
main.js
$(function(){
/*=================================================
// カルーセル用 jQueryプラグイン「slick」
// マニュアル:https://kenwheeler.github.io/slick/
===================================================*/
$('#slider').slick({
autoplay: true, // 自動再生オン
autoplaySpeed: 3000, // スライドを3秒で切り替え
arrows: true, // 左右の矢印を表示
dots: true, // ドット(ページ送り)を表示
slidesToShow: 1, // スライドを1枚表示(※centerModeをtrueにすると両端に2枚見切れた状態になる)
centerMode: true, // センターモード(両端が見切れた状態になる)
centerPadding: '18%', // 見切れたコンテンツの幅を18%に設定
prevArrow:'<div class="prev"></div>', // 前へ矢印のHTMLを変更する
nextArrow:'<div class="next"></div>', // 次へ矢印のHTMLを変更する
responsive: [ // レスポンシブの設定
{
breakpoint: 900, // 900px以下の場合に適用
settings: {
centerMode: false // センターモードをオフにする
}
}
]
});
});