【jQuery】高機能スライダープラグイン「Slick」の使い方
簡単に実装できて高機能なスライダー系jQueryプラグイン「Slick」の使い方。
レスポンシブ、タッチデバイス対応でオプション設定も豊富。
DEMOページを作ってみました。
1つ目のスライドは初期設定のまま、2つ目のスライドは色々とカスタマイズしてます。
Slickのダウンロード
公式サイト
slick – the last carousel you’ll ever need
ナビゲーションの「get it now」をクリックした先の「Download Now」ボタンからデータ一式をダウンロードできます。
ダウンロードしたSlickのZIPファイルを解凍し、その中から下記のファイルを使用します。
- slick.css
- slick.min.js
- slick-theme.css
- ajax-loader.gif
- fonts(フォルダ)
CSSとJSの読み込み
<link rel="stylesheet" href="slick.css">
<link rel="stylesheet" href="slick-theme.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
<script src="js/slick.min.js"></script>
「slick-theme.css」を編集することで、スタイルのカスタマイズを行えます。
スライドさせるコンテンツ(HTML)
HTML
<div class="slick1">
<div><img src="images/img1.jpg" width="800" height="600" alt=""></div>
<div><img src="images/img2.jpg" width="800" height="600" alt=""></div>
<div><img src="images/img3.jpg" width="800" height="600" alt=""></div>
<div><img src="images/img4.jpg" width="800" height="600" alt=""></div>
<div><img src="images/img5.jpg" width="800" height="600" alt=""></div>
</div>
JavaScript
基本的なスライダーは1行書くだけで完成です。
$(function() {
$('.slick1').slick();
});
オプション設定はこのような感じで書きます。
$(function() {
$('.slick2').slick({
autoplay: true,
dots: true,
centerMode: true,
centerPadding: '20%',
slideToShow: 1,
focusOnSelect: true,
speed: 1000,
responsive: [
{
breakpoint: 768,
settings: {
centerMode: false
}
}
]
});
});
Slickのオプション
オプション名 | オプション説明 | 初期値 |
---|---|---|
accessibility | キーボードの矢印キーの左右で画像切り替え | true |
adaptiveHeight | スライドの高さを揃える | false |
autoplay | 自動再生 | false |
autoplaySpeed | 自動再生のスピード | 3000 |
arrows | 前・次の矢印 | true |
asNavFor | ページ内の他のスライドと連携させたい時にIDまたはClass名を指定 | null |
appendArrows | 矢印ナビの生成位置を変更 | $(element) |
appendDots | ドットナビの生成位置を変更 | $(element) |
prevArrow | 「前へ」ボタンのHTMLカスタマイズ | <button type=“button” class=“slick-prev”>Previous</button> |
nextArrow | 「次へ」ボタンのHTMLカスタマイズ | <button type=”button” class=”slick-next”>Next</button> |
centerMode | 現在のスライドを中央に表示 | false |
centerPadding | centerModeの左右のスライドを見せる幅を指定(px of %) | 50px |
cssEase | スライド切り替え時のアニメーションの指定 | ease |
customPaging | ナビゲーションをサムネイルなどに変更 | |
dots | ドットのナビゲーションを表示 | false |
dotsClass | ドットナビゲーションのクラス名を変更 | ’slick-dots’ |
draggable | ドラッグでスライド切り替え | true |
fade | スライド切り替えをフェードにする | false |
focusOnSelect | クリックした要素にスライドする | false |
easing | イージングの指定 | ’linear’ |
infinite | スライドの無限ループ | true |
edgeFriction | infinite:falseの時、端のスライドをスワイプした時のバウンドする値 | 0.15 |
initialSlide | 最初のスライドの位置 | 0 |
lazyLoad | 画像の遅延表示。’ondemand’または’progressive’を指定 | ondemand |
mobileFirst | responsiveオプションのモバイル設定を初期値にする | false |
pauseOnFocus | フォーカス時、自動再生を一時停止させるか | true |
pauseOnHover | ホバー時、自動再生を一時停止させるか | true |
pauseOnDotsHoveer | ドットナビにホバー時、自動再生を一時停止させるか | true |
respondTo | レスポンシブのwidthの判定。window_slider_min | window |
responsive | レスポンシブのブレイクポイントを設定してオプションを切り替え | none |
rows | スライドの行数を設定 | 1 |
slide | スライド部分の要素のタグ名 | ” |
slidesPerRow | rowsの値が2以上の時、1行あたりに表示させるスライド数 | 1 |
slidesToShow | 表示するスライド数 | 1 |
slidesToScroll | スクロールするスライド数 | 1 |
speed | スライドのアニメーションの速度を設定 | 300 |
swipe | スワイプを有効にするか | true |
swipeToSlide | SslidesToScrollの値に関係なく、ドラッグやスワイプでスライドさせる際は1スライドずつ動かす | false |
touchMove | タッチでスライドさせるか | true |
touchThreshold | (1 / touchThreshold) * スライダーの横幅分ドラッグするとスライドされる | 5 |
useCSS | CSS transitionを有効化 | true |
useTransform | CSS transformを有効化 | true |
variableWidth | スライドの横幅をバラバラにする | false |
vertical | 縦方向にスライドさせる | false |
verticalSwiping | 縦方向のスワイプを有効にする | false |
rtl | スライダーの方向を右から左に変更(親要素に「dir=“trl”を記述」) | false |
waitForAnimate | スライドアニメーション中サムネイルをクリックした時反応させない | true |
zIndex | スライドの重なり順 | 1000 |