bxSliderの使い方
bxSliderの使用方法をご紹介しています。
bxSliderはレスポンシブに対応したカルーセルを簡単に実装できるjQueryライブラリです。
bxSliderは画像だけでなく文字であっても機能します。
- ※ このライブラリは、jQueryが別途必要です。
ライブラリのダウンロードと設置
Githubから"Source code (zip) "を押し、ダウンロードして解凍します。
解凍後、distディレクトリにあるjquery.bxslider.min.cssとjquery.bxslider.min.js、imagesディレクトリを任意の場所に格納します。
次のように任意の場所に格納したCSSファイルとJavaScriptファイルを<head>内に記述して読み込みます。
パスは環境により変更してください。
HTML
- ※ jQueryは予め読み込んでいるものとします。
適用方法
次のようにカルーセルを適用するHTMLを準備します。
HTML
JavaScriptを次のように記述します。
JavaScript
JavaScript
これでカルーセルが機能します。
初期状態では適用する要素の子要素すべてをスライドとして扱います。
詳しくは オプション を参照してください。
オプション
General
プロパティ | 初期値 | 設定可能値・型 | 説明 |
---|---|---|---|
mode | 'horizontal' | 'horizontal', 'vertical', 'fade' |
切り替え効果の種類 horizontal = 水平方向 vertical = 垂直方向 fade = フェード |
speed | 500 | number | 切り替え効果の速度 指定値はミリ秒 |
slideMargin | 0 | number | スライドの間隔(余白) 指定値はピクセル |
startSlide | 0 | number | 開始するスライド 指定値は0から始まるインデックス番号 |
randomStart | false | boolean | ランダムにスライドを切り替えるかどうか |
slideSelector | '' | jQuery selector | スライドする要素 初期値(空白)は直下の要素すべてをスライドとする |
infiniteLoop | true | boolean | 無限に繰り返すかどうか true = 最後のスライドから最初のスライドへ切り替えたり、最初のスライドから最後のスライドへ切り替えることが可能 false = 最後のスライドから最初のスライド、最初のスライドから最後のスライドへ切り替えられなくなる |
hideControlOnEnd | false | boolean | アクティブにする次のスライドがない場合、コントローラを非表示にするかどうか infiniteLoopがfalseの場合のみ有効 対象のコントローラにクラス名「disabled」が付与される |
easing | null | jquery.easing | 切り替え効果のイージング 指定値はjQueryのeasingまたはCSSの「transition-timing-function」の値 |
captions | false | boolean | キャプションを表示するかどうか 表示する文字はtitle属性で設定する |
ticker | false | boolean | 切り替え効果をニュースティッカーのように扱うかどうか |
tickerHover | false | boolean | スライドへマウスオーバーしたとき、ティッカーを一時停止するかどうか tickerがtrueの場合のみ有効 |
adaptiveHeight | false | boolean | スライドの高さが異なる場合に、スライド全体の大きさをアクティブになっているスライドの大きさにリサイズするかどうか |
adaptiveHeightSpeed | 500 | number | リサイズする速度 adaptiveHeightがtrueの場合のみ有効 |
video | false | boolean | スライドに動画が含まれる場合、動画をレスポンシブに対応させるかどうか 別途jquery.fitvids.jsが必要 https://github.com/davatron5000/FitVids.js |
responsive | true | boolean | レスポンシブに対応するかどうか |
useCSS | true | boolean | スライドの切り替え効果にCSSアニメーションを使用するかどうか |
preloadImages | 'visible' | 'all', 'visible' |
プリロードする画像(画像の読み込みのタイミング) all = すべての画像 visible = 表示されている(見えている)画像のみ |
touchEnabled | true | boolean | タッチデバイスのスワイプによる切り替えをするかどうか |
swipeThreshold | 50 | number | スワイプで切り替えを行う感覚幅 |
oneToOneTouch | true | boolean | タッチしている間に指に吸着してスライドを動かすかどうか |
preventDefaultSwipeX | true | boolean | X軸に対するスワイプのスライドを行うかどうか |
preventDefaultSwipeY | false | boolean | Y軸に対するスワイプのスライドを行うかどうか |
wrapperClass | 'bx-wrapper' | string | 適用する親要素にラッパーする要素のクラス名 |
Pager
プロパティ | 初期値 | 設定可能値 | 説明 |
---|---|---|---|
pager | true | boolean | ページャーを表示するかどうか スライドの切り替える数をページとしてアイテムを表示する |
pagerType | 'full' | 'full', 'short' |
ページャーの種類 full = スライドの分だけ表示(1 2 3 ...) short = 現在の表示しているスライドの番号と合計のスライド数のみ表示(2 / 3) ※ fullの時はスライドの移動機能が付く |
pagerShortSeparator | ' / ' | string | pagerTypeが'short'の時の区切り文字 |
pagerSelector | '' | jQuery selector | 指定した要素にページャーを表示する 指定可能な値はセレクターまたはjQueryオブジェクト |
pagerCustom | null | jQuery selector | ページャーを独自の要素(テンプレート)にする 指定可能な値はセレクターまたはjQueryオブジェクト |
buildPager | null | function | サムネールとしてのページャーを指定する |
Controls
プロパティ | 初期値 | 設定可能値 | 説明 |
---|---|---|---|
controls | true | boolean | コントローラー(次や前のスライドへ移動するボタン)を表示するかどうか |
nextText | 'Next' | string | 次のスライドへ移動するボタンの文字 |
prevText | 'Prev' | string | 前のスライドへ移動するボタンの文字 |
nextSelector | null | jQuery selector | 次のスライドへ移動するボタンを独自の要素にする 指定可能な値はセレクターまたはjQueryオブジェクト |
prevSelector | null | jQuery selector | 前のスライドへ移動するボタンを独自の要素にする 指定可能な値はセレクターまたはjQueryオブジェクト |
autoControls | false | boolean | 自動切り替えを行うボタン(コントローラ)を表示するかどうか |
startText | 'Start' | string | 自動切り替えの開始ボタンの文字 |
stopText | 'Stop' | string | 自動切り替えの一時停止ボタンの文字 |
autoControlsCombine | false | boolean | 自動切り替えの開始・一時停止をトグルボタンとして表示するかどうか |
autoControlsSelector | null | jQuery selector | 自動切り替えのコントローラを独自の要素にする 指定可能な値はセレクタ―またはjQueryオブジェクト |
keyboardEnabled | false | boolean | キーボードによる操作を可能にするかどうか |
Auto
プロパティ | 初期値 | 設定可能値 | 説明 |
---|---|---|---|
auto | false | boolean | 自動的に切り替えを行うかどうか |
stopAutoOnClick | false | boolean | クリックしたときに自動切り替えのタイミングをやり直すかどうか 通常次のスライドまでの時間はページャーやコントローラを操作しても進むが、このオプションを有効にするとリセットすることができる |
pause | 4000 | number | 次のスライドを切り替えを開始するまでの間隔 |
autoStart | true | boolean | ページ読み込み後に自動的に切り替えを開始するかどうか |
autoDirection | 'next' | 'next', 'prev' |
自動切り替えする方向 next = 次の方向へ移動 prev = 前の方向へ移動 |
autoHover | false | boolean | スライドへマウスオーバーしたとき、自動切り替えを一時停止するかどうか |
autoDelay | 0 | number | 初期に自動切り替えするときの遅延時間 指定値はミリ秒 |
Carousel
プロパティ | 初期値 | 設定可能値 | 説明 |
---|---|---|---|
minSlides | 1 | number | 一度(表示領域)に表示させるスライドの最小個数 |
maxSlides | 1 | number | 一度(表示領域)に表示させるスライドの最大個数 |
moveSlides | 0 | number | 一度に移動する(切り替わる)スライド数 0を指定するとminSlidesやmaxSlidesの数に応じて自動的に設定される |
slideWidth | 0 | number | 1つのスライドに対する横幅 0を指定すると自動的に幅が設定される |
shrinkItems | false | boolean |
Keyboard
プロパティ | 初期値 | 設定可能値 | 説明 |
---|---|---|---|
keyboardEnabled | false | boolean | キーボードによるスライドの操作を有効にするかどうか |
Accessibility
プロパティ | 初期値 | 設定可能値 | 説明 |
---|---|---|---|
ariaLive | true | boolean | aria-live属性を有効にするかどうか |
ariaHidden | true | boolean | aria-hidden属性を有効にするかどうか |
コールバック
プロパティ | 引数 | 説明 |
---|---|---|
onSliderLoad |
|
bxSliderの準備が整った直後に実行する関数 |
onSliderResize |
|
スライドがリサイズされたときに実行する関数 |
onSlideBefore |
|
スライドの切り替えが行われる直前に実行する関数 |
onSlideAfter |
|
スライドの切り替えが行われた直後に実行する関数 |
onSlideNext |
|
次のスライドに切り替わる直前に実行する関数 |
onSlidePrev |
|
前のスライドに切り替わる直前に実行する関数 |
JavaScript
メソッド
メソッド名 | 説明 |
---|---|
goToSlide | 指定したスライドへ切り替える |
goToNextSlide | 次のスライドへ切り替える |
goToPrevSlide | 前のスライドへ切り替える |
startAuto | 自動切り替えを開始 |
stopAuto | 自動切り替えを一時停止 |
getCurrentSlide | 現在のスライドのインデックス番号を取得 |
getSlideCount | スライドの合計個数を取得 |
redrawSlider | 描画をやり直す スライドの幅や高さなどうまく取得できない時などに使用する |
reloadSlider | bxSliderをリロード(読み直し)を行う |
destroySlider | bxSliderの破棄を行う |
JavaScript
サンプルデモ
初期
JavaScript
効果をフェード、キャプションを有効
JavaScript
自動切り替え、自動切り替えコントローラ表示を有効
JavaScript
表示領域(最小と最大)、スライドの幅、スライドの間隔を指定
JavaScript
minSlidesとmaxSlidesの値は親要素の幅に依存します。
minSlidesを1、maxSlidesを3とした場合、親要素の幅が500pxの場合は3枚表示されますが、親要素が500px未満である場合は2枚または1枚表示されることになります。
minSlidesとmaxSlidesが同じ値かつslideWidthが0以外を指定している場合は、slideWidthの値は最大の幅とし、枚数と間隔の合計幅が親要素を超える場合は1つのスライドの幅が自動的に調整され、必ずその枚数で表示されます。
ニュースティッカーのように表現
JavaScript
speedによってスライド全体の速度を指定します。
ページャーをサムネール画像として表示
JavaScript
左右を見切れさせる
左右のスライドをちょい見せするテクニックです。
スライドを適用する要素にさらに親要素が必要です。
HTML
JavaScript
CSS
スマートフォンでリンクが機能しない(遷移できない)不具合の解消方法
スマートフォンでスライドをタッチしてもリンクが機能しない(遷移できない)不具合が起きることがあります。
これを解消するには、オプションのtouchEnabled
プロパティをfalseに設定することで解消できます。
ただし、当然ですがスワイプ機能が無効になりますのでご注意ください。
JavaScript