Open2
slickを用いてShopifyでスライドショーを作成する
【Shiopify】スライドショーセクションを作成する
コーディングしたくない人はこんなアプリもあるみたいですね。。
複数スライドが表示されて、1つずつ入れ替わるスライドショーを作成したい ↓
参考記事
作成の流れ
- テーマにjQueryを追加
- テーマにslickを追加
- CSSファイル作成
- HTML作成
- JSファイル作成
jQueryの追加
Shopifyのtheme.liquid
ファイルの<head>
タグ内に<script src="//ajax.googleapis.com/ajax/libs/jquery/2.2.3/jquery.min.js"></script>
を追記します。
theme.liquid
<head>
...
<!--jqueryを追加 -->
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.2.3/jquery.min.js"></script>
</head>
slickの追加
HTML、CSS、JSファイルを作成していきます。
CSSの追加
head
の終了タグの直前に自作のCSSファイルとslickのCSSのファイルを読み込みます。
theme.liquid
<head>
...
<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/slick-carousel@1.8.1/slick/slick.css">
<!--AssetsディレクトリにあるCSSファイルのlinkタグを生成する-->
{{ '○○○○.css' | asset_url | stylesheet_tag }}
</head>
CSSの中身
.css
/*==================================================
スライダーのためのcss
===================================*/
.slider {/*横幅94%で左右に余白を持たせて中央寄せ*/
width:94%;
margin:0 auto;
}
.slider img {
width:100%;/*スライダー内の画像を横幅100%に*/
height:auto;
}
/*slickのJSで書かれるタグ内、スライド左右の余白調整*/
.slider .slick-slide {
margin:0 10px;
}
/*矢印の設定*/
/*戻る、次へ矢印の位置*/
.slick-prev,
.slick-next {
position: absolute;/*絶対配置にする*/
top: 42%;
cursor: pointer;/*マウスカーソルを指マークに*/
outline: none;/*クリックをしたら出てくる枠線を消す*/
border-top: 2px solid #666;/*矢印の色*/
border-right: 2px solid #666;/*矢印の色*/
height: 15px;
width: 15px;
}
.slick-prev {/*戻る矢印の位置と形状*/
left: -1.5%;
transform: rotate(-135deg);
}
.slick-next {/*次へ矢印の位置と形状*/
right: -1.5%;
transform: rotate(45deg);
}
/*ドットナビゲーションの設定*/
.slick-dots {
text-align:center;
margin:20px 0 0 0;
}
.slick-dots li {
display:inline-block;
margin:0 5px;
}
.slick-dots button {
color: transparent;
outline: none;
width:8px;/*ドットボタンのサイズ*/
height:8px;/*ドットボタンのサイズ*/
display:block;
border-radius:50%;
background:#ccc;/*ドットボタンの色*/
}
.slick-dots .slick-active button{
background:#333;/*ドットボタンの現在地表示の色*/
}
HTMLの追加
セクションファイルにスライドとなるHTMLを記載します。
slideshow.liquid
<ul class="slider">
<li><img src="img/img_01.jpg" alt=""></li>
<li><img src="img/img_02.jpg" alt=""></li>
<li><img src="img/img_03.jpg" alt=""></li>
<li><img src="img/img_04.jpg" alt=""></li>
<li><img src="img/img_05.jpg" alt=""></li>
<li><img src="img/img_06.jpg" alt=""></li>
<!--/slider--></ul>
JSの追加
theme.liquid
<head>
...
<script src="https://code.jquery.com/jquery-3.4.1.min.js" integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/slick-carousel@1.8.1/slick/slick.min.js"></script>
<!--AssetsディレクトリにあるJSファイルのscriptタグを生成する-->
{{ '○○○○.js' | asset_url | script_tag }}
</head>
JSの中身
○○○○.js
$('.slider').slick({
autoplay: true,//自動的に動き出すか。初期値はfalse。
infinite: true,//スライドをループさせるかどうか。初期値はtrue。
slidesToShow: 3,//スライドを画面に3枚見せる
slidesToScroll: 3,//1回のスクロールで3枚の写真を移動して見せる
prevArrow: '<div class="slick-prev"></div>',//矢印部分PreviewのHTMLを変更
nextArrow: '<div class="slick-next"></div>',//矢印部分NextのHTMLを変更
dots: true,//下部ドットナビゲーションの表示
responsive: [
{
breakpoint: 769,//モニターの横幅が769px以下の見せ方
settings: {
slidesToShow: 2,//スライドを画面に2枚見せる
slidesToScroll: 2,//1回のスクロールで2枚の写真を移動して見せる
}
},
{
breakpoint: 426,//モニターの横幅が426px以下の見せ方
settings: {
slidesToShow: 1,//スライドを画面に1枚見せる
slidesToScroll: 1,//1回のスクロールで1枚の写真を移動して見せる
}
}
]
});
日本対応のスライドショーアプリについて
デモサイト
アプリの挙動↓
初見結構良さそうではある。
日本語の導入説明
とても詳しい説明があるので導入は簡単にできる感じ。
Slickでやるより簡単ですね。。。
ぜひ導入してみてください。