今日紹介する jQuery プラグイン[bxSlider]はレスポンシヴ・デザインにも対応した高性能なコンテンツ・スライダーです。
まずはサンプルをご覧ください。
jQuery bxSlider:サンプル・デモ
特徴は初心者でも簡単に設置できること、ファイル容量が小さい軽量設計、レスポンシヴ・デザイン対応で、各種スマートフォンやタブレットでも横幅に合わせてコンテンツのサイズを自動的に調整してくれること、また、画像だけでなく動画も含めた表示が可能、そしてオプション機能が豊富に用意されていることも大きな魅力の1つです。
実装方法は以下のとおり。
[bxSlider]の設置方法
最初に[bxSlider]の本体ファイルをダウンロードします。
リンクは以下より。
bxSlider:ダウンロード
フォルダの中にいくつかのファイルが含まれていますが、基本的に必要なのはスクリプトの[jquery.bxslider.min.js]とスタイルシートの「jquery.bxslider.css」の2つ。
当然ですがスタイルシートの[jquery.bxslider.css]は中身のコードをコピーしてメインのCSSに貼り付けてしまえば不要になります。
とりあえずサーバーの任意の場所にアップロードして、html の <head>〜</head> 内に埋め込みます。
また、ここでスライダーの設定も合わせて記述します。
<link rel="stylesheet" href="/jquery.bxslider.css"> <script src="//ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js" /></script> <script src="/jquery.bxSlider.min.js"></script> <script> $(function(){ $('.bxslider').bxSlider({ auto: true, slideWidth: 640, minSlides: 3 }); }); </script>
とりあえず今回は「自動でスライド」「コンテンツの横幅は640px」「最小スライド数が3点」というオプションを設定してみました。
続いてメインのスライドショーになる部分の記述方法です。
<ul class="bxslider"> <li><img src="../images/sample-01.png" width="640" height="300"></li> <li><img src="../images/sample-02.png" width="640" height="300"></li> <li><img src="../images/sample-03.png" width="640" height="300"></li> <li><img src="../images/sample-04.png" width="640" height="300"></li> </ul>
リストを使った簡単なマークアップですね。ここではスライドショーの本体となる[ul]要素にクラス名[.bxslider]を指定し、スライダーで切り替えたい画像を[li]要素で記述しています。
もちろん、スライドさせたいリストは好みの数に増やしてOKです。
以上で[bxSlider]が動くようになります。
細かなデザイン部分はすべて、もともと同梱されているスタイルシート[jquery.bxslider.css]が司っています。
ページ送りやサムネイルの設定をした際には、ブラウザで「要素を検証」すると、[.bx-controls]や[.bx-pager]などのクラス名が追加された要素が吐き出されていることを確認できるので微調整してください。
[bxSlider]のオプション一覧
各オプション設定の詳細は以下のとおり。
現状のすべての項目を網羅しています。
General
- mode
- 横スライド、縦スライド、フェードイン・アウトを選べます。
指定できる値は、それぞれ 'horizontal', 'vertical', 'fade' になります。 - speed
- スライドのスピードをミリ秒単位で指定できます。デフォルトは '500' です。
- slideMargin
- スライダーのコンテンツ部のマージンを指定できます。
CSS 側でも設定可能です。 - startSlide
- 何番目のコンテンツを最初に表示させるか?
1枚目が '0' になり、2枚目が '1' になります。 - randomStart
- こちらはランダムにスタートさせるか否かのプロパティ。ランダムではない 'false' か、ランダム表示させる 'true' かを指定できます。
- slideSelector
- スライドさせる要素を指定できます。
デフォルトの値は無し。指定する場合は 'div.slide' などクラス名を使うのが一般的です。 - infiniteLoop
- ループさせるか否か。デフォルトはループさせる 'true' です。
- hideControlOnEnd
- 最後のコンテンツ部に来たときに、コントロール・オプションの「Next」を非表示にします。
- easing
- スライド時に CSS のイージングを適用させることができます。
'linear'、 'ease'、 'ease-in'、 'ease-out'、 'ease-in-out' などから指定できます。 - captions
- 画像のキャプションを表示させることができます。キャプションは<img>タグの[title]プロパティ内に記述したものが適用されます。
- ticker
- 継続的にスライドさせる「ティッカーモード」を有効化します。いわゆる「ニュースティッカー」として動作させたいときにこの値を 'true' にします。
- tickerHover
- 「ティッカーモード」を有効化しているとき、マウスホバー時の処理を指定します。
- adaptiveHeight
- 各スライドの高さが違う場合、それぞれを調節して合わせるかどうか。初期値は 'false' です。
- adaptiveHeightSpeed
- スライダーの高さの調節の遷移時間の設定。前項の「adaptiveHeight」が 'true' のときのみ有効。初期値は500です。
- video
- スライダーに含まれている video をレスポンシブにする場合は 'true' を指定します。またその際は別途[jquery.fitvids.js]を読み込む必要があります。なお同スクリプトファイルはダウンロードしたプラグインのフォルダに同梱されています。なおデフォルトの値は 'false' になっています。
- responsive
- レスポンシヴに対応するか否か。デフォルトはレスポンシヴ対応の 'true' です。
- useCSS
- スライドにCSSアニメーションを使用するかどうかの設定。初期値は 'true' です。
- preloadImages
- 画像読み込みのタイミングを指定します。
'all' で開始前にすべての画像を読み込み、'visible' で最初に表示される画像だけを先に読み込みます。 - touchEnabled
- モバイルデバイスのタッチ、スワイプに反応します。
- swipeThreshold
- スワイプ操作として処理される最小の移動距離。前項の touchEnabled :true のときのみ有効。初期値は '50' です。
- oneToOneTouch
- スワイプ時に要素を移動させる処理。初期値は 'true' です。
- preventDefaultSwipeX
- 初期値は 'true'。
- preventDefaultSwipeY
- 初期値は 'false'。
Pager
- pager
- ページ送りを有効化するか否か。
- pagerType
- ページ送りのタイプを設定。
- pagerShortSeparator
- 前項の「pagerType」の値が 'short' のときの区切り線の設定。初期値は ' / ' になっています。
- pagerSelector
- 指定した位置にページ送りを追加する。
- pagerCustom
- ページ送りを自分で用意する場合の設定。
- buildPager
- ページ送りの各中身を設定。
Controls
- controls
- 前後のコントロールを表示させる。
- nextText
- nextのテキストを指定。初期値は 'Next'。
- prevText
- prevのテキストを指定。初期値は 'Prev'。
- nextSelector
- 「next」を自分で用意する場合にjQueryセレクタで指定。
- prevSelector
- 「prev」を自分で用意する場合にjQueryセレクタで指定。
- autoControls
- 自動スライドのコントロールを表示する。
- startText
- 自動スライドの「start」のテキストを指定。初期値は 'Start'。
- stopText
- 自動スライドの「stop」のテキストを指定。初期値は 'Stop'。
- autoControlsCombine
- 自動スライド時に、停止した際にコントロールボタンの表示/非表示させる設定。
- autoControlsSelector
- 自動スライドのコントロールを自分で用意する場合にjQueryセレクタで指定。初期値は 'null' になっています。
Auto
- auto
- 自動スライドの設定。
- pause
- 自動スライドの待ち時間を指定。
- autoStart
- 読み込み後に自動スライドを開始するかどうかを指定。
- autoDirection
- 自動スライドの方向の指定。
- autoHover
- スライダーにホバーしたときに自動スライドを停止させるかどうかを指定。
- autoDelay
- 自動スライドを開始するまでの待ち時間を指定する。
Carousel
- minSlides
- 一度に表示させる最小数を設定。
- maxSlides
- 一度に表示させる最大数を設定。
- moveSlides
- カルーセル表示のときに移動するスライド数の設定。
- slideWidth
- 各スライドの幅を指定。
Callbacks
コールバックも各種あらかじめ用意されています。
- onSliderLoad
- スライダーが読み込まれた直後に実行。
- onSlideBefore
- スライドする直前に実行。
- onSlideAfter
- スライドした直後に実行。
- onSlideNext
- nextが実行される直前に実行。
- onSlidePrev
- prevが実行される直前に実行。
Public methods
コールバックも各種あらかじめ用意されています。
- goToSlide
- 指定要素へスライドする。
- goToNextSlide
- nextを実行。
- goToPrevSlide
- prevを実行。
- startAuto
- 自動スライドの開始。
- stopAuto
- 自動スライドの停止。
- getCurrentSlide
- 現在表示されているスライドを返す。
- getSlideCount
- スライダーのスライド要素の総数を返す。
- reloadSlider
- スライダーをリロードする。
- destroySlider
- スライダーをプラグインを読み込む前の初期状態に戻す。
以上。様々なオプションが揃っているのでカスタマイズも捗りますね。
動作も安定していますし、スライダー系の jQuery プラグインの中でも最高峰の完成度です。
いまイチ押しの[bxSlider]を、ぜひ利用してみてください。
bxSlider:ダウンロード