jQueryスライダー「slick.js」の基本的な使い方は前回の「使い方とオプション設定」で説明しましたが、今回は実際の制作で役立つ実装編です。
基本的な使い方からオプション設定を利用したスライダーの見せ方など、いくつかご紹介していきますので参考にされてください。
<div class="slider_1">
<div class="item"><img src="img01.jpg"></div>
<div class="item"><img src="img02.jpg"></div>
<div class="item"><img src="img03.jpg"></div>
<div class="item"><img src="img04.jpg"></div>
<div class="item"><img src="img05.jpg"></div>
<div class="item"><img src="img06.jpg"></div>
</div>
$(function() {
$('.slider_1').slick({
autoplay: true,
dots: true
});
});
自動再生を有効化、ドットインジケーターを有効化にしています。
※スライド前後の矢印はデフォルト
<div class="slider_2">
<div class="item"><img src="img01.jpg"></div>
<div class="item"><img src="img02.jpg"></div>
<div class="item"><img src="img03.jpg"></div>
<div class="item"><img src="img04.jpg"></div>
<div class="item"><img src="img05.jpg"></div>
<div class="item"><img src="img06.jpg"></div>
</div>
$(function() {
$('.slider_2').slick({
autoplay: true,
slidesToShow: 2,
dots: true
});
});
slidesToShow
で表示枚数を指定しています。
<div class="slider_3">
<div class="item"><img src="img01.jpg"></div>
<div class="item"><img src="img02.jpg"></div>
<div class="item"><img src="img03.jpg"></div>
<div class="item"><img src="img04.jpg"></div>
<div class="item"><img src="img05.jpg"></div>
<div class="item"><img src="img06.jpg"></div>
</div>
$(function() {
$('.slider_3').slick({
autoplay: true,
slidesToShow: 3,
slidesToScroll: 2,
dots: true
});
});
slidesToShow
で表示枚数を指定、slidesToScroll
でスライド枚数を指定しています。
<div class="slider_4">
<div class="item"><img src="img01.jpg"></div>
<div class="item"><img src="img02.jpg"></div>
<div class="item"><img src="img03.jpg"></div>
<div class="item"><img src="img04.jpg"></div>
<div class="item"><img src="img05.jpg"></div>
<div class="item"><img src="img06.jpg"></div>
</div>
$(function() {
$('.slider_4').slick({
autoplay: true,
slidesToShow: 3,
slidesToScroll: 2,
dots: true,
centerMode: true
});
});
centerMode
を設定することで画像が中央寄せで表示することができます。
あれ?中央に配置するだけでこんな風になるのですか?
CSSで調整することでアクティブな画像をより分かりやすくすることが可能なんだ。アクティブな画像にはslick-current
というclassが付与されるのでそれを使用すれば色々なカスタマイズが出来るよ!
<div class="slider_5">
<div class="item"><img src="img01.jpg"></div>
<div class="item"><img src="img02.jpg"></div>
<div class="item"><img src="img03.jpg"></div>
<div class="item"><img src="img04.jpg"></div>
<div class="item"><img src="img05.jpg"></div>
<div class="item"><img src="img06.jpg"></div>
</div>
<div class="slider_5_thumb">
<div class="item"><img src="img01.jpg"></div>
<div class="item"><img src="img02.jpg"></div>
<div class="item"><img src="img03.jpg"></div>
<div class="item"><img src="img04.jpg"></div>
<div class="item"><img src="img05.jpg"></div>
<div class="item"><img src="img06.jpg"></div>
</div>
$(function() {
$('.slider_5').slick({
arrows: false,
asNavFor: '.slider_5_thumb'
});
$('.slider_5_thumb').slick({
slidesToShow: 4,
slidesToScroll: 1,
asNavFor: '.slider_5',
focusOnSelect: true
});
});
サムネイル付きのスライダーとして設定する場合、まずは2つのスライダーを設置します。そして、それぞれのスライダーのナビゲーションとなるようasNavFor
に連動するスライダーのidやclassを指定します。
また、サムネイルとなるスライダーにはサムネイルとして表示させる画像の枚数の設定とfocusOnSelect
を有効化してサムネイルをクリックした際に連動してメインスライダーが動くようにします。
slidesToShow
に設定する枚数を奇数にして、centerMode
を有効化にすることでアクティブなサムネイル画像を中央に配置するようにも出来るよ。
<div class="slider_6">
<div class="item"><img src="img01.jpg"></div>
<div class="item"><img src="img02.jpg"></div>
<div class="item"><img src="img03.jpg"></div>
<div class="item"><img src="img04.jpg"></div>
<div class="item"><img src="img05.jpg"></div>
<div class="item"><img src="img06.jpg"></div>
</div>
$(function() {
$('.slider_6').slick({
autoplay: true,
dots: true,
vertical: true,
verticalSwiping: true,
centerMode: true
});
});
vertical
とverticalSwiping
を有効化にすることで垂直にスライドします。
- デモではパソコンでも簡単にスマホ表示が確認できるようにボタンで切り替えが出来るようにしてあります。実際にスマホで見ていただくと、どちらのボタンを押してもレスポンシブ設定した1枚のみ表示されます。
<div class="slider_7">
<div class="item"><img src="img01.jpg"></div>
<div class="item"><img src="img02.jpg"></div>
<div class="item"><img src="img03.jpg"></div>
<div class="item"><img src="img04.jpg"></div>
<div class="item"><img src="img05.jpg"></div>
<div class="item"><img src="img06.jpg"></div>
</div>
$(function() {
$('.slider_7').slick({
slidesToShow: 3,
responsive: [{
breakpoint: 560,
settings: {
slidesToShow: 1
}
}]
});
});
responsive
を設定することでレスポンシブが有効になり、breakpoint
でブレイクポイントを設定してsettings
オブジェクトで各オプションを指定します。breakpoint
を複数設定することでパソコン・タブレット・スマホで表示を変えることが可能です。
コンテンツ幅をはみ出して画面いっぱいにスライダーを設置したい場合がよくあるかと思います。少し分かりづらいですがコンテンツ幅と仮定する箇所に色を付けて分かりやすく表現してあります。
<div class="window_section">
<div class="contents_section">
<div class="slider_8">
<div class="item"><img src="img01.jpg"></div>
<div class="item"><img src="img02.jpg"></div>
<div class="item"><img src="img03.jpg"></div>
<div class="item"><img src="img04.jpg"></div>
<div class="item"><img src="img05.jpg"></div>
<div class="item"><img src="img06.jpg"></div>
</div>
</div>
</div>
$(function() {
$('.slider_8').slick({
autoplay: true,
dots: true,
centerMode: true,
centerPadding: '5%',
});
});
コード通りに設置しても中央設置のスライダーと変わらないのですけど…
設置の方法は同じなのだけどポイントは以下の2点!
①slick-list要素をoverflow: visible;
に変更すること
②①によってはみ出した要素をウィンドウ幅以上にはみ出さないように親要素にoverflow: hidden;
を設定すること
なるほど!通常はoverflow: hidden;
で前後の画像が見えなくなっているだけなんですね。
代表的な設置方法をご紹介しましたが、slickスライダーの設置方法はオプションを使用すればまだまだ多くの設置方法があります。どのような設置方法があるのかを把握することでWeb制作の幅が広がります。
あわせて読みたい記事
jQueryスライダー「slick.js」の使い方とオプション設定