FlexSlider2は、スライドショー、カルーセル、ヒーロー画像の背景など、さまざまなコンテンツをスライド表示できるオープンソースのjQueryプラグインです。
スムーズなアニメーションやモバイルでのタッチスクロールにも対応しており、自動スライド、ナビゲーション機能、スライダー方向のカスタマイズなどが可能です。また、モダンなデザインにマッチするように設計されており、シンプルで使いやすいと評価されています。
FlexSlider2を使ったカルーセルスライダーの使い方を紹介します。
http://flexslider.woothemes.com/thumbnail-slider.html
レスポンシブなスライダーライブラリをまとめています。簡単・使いやすくレスポンシブなカルーセルスライダー
FlexSlider2の特徴
- レスポンシブデザインに対応:様々なデバイスや画面サイズに対応することができます。
- カスタマイズ可能なオプションが多い:スライドの速度、自動再生、ナビゲーションの種類、アニメーションの種類などを設定できます。
- タッチスワイプに対応:スマートフォンやタブレットなどのタッチスクリーンデバイスに対応しており、ユーザーが指でスライドを操作することができます。
- 多機能ナビゲーション:ドット、矢印、サムネイルなどでスライド用ナビゲーションを設定できます。
- カスタムアニメーション:スライドの切り替えやフェードイン/フェードアウトなどのアニメーションを追加することができます。
「Flexslider2」の使い方
Flexslider2の設置手順です。
1. FlexSliderのスクリプト・CSSを読み込む
CDNで読み込む場合は下記から
<!-- jQuery ver2 -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
<!-- flexslider -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/flexslider/2.7.2/jquery.flexslider.min.js"></script>
<!-- css -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/flexslider/2.7.2/flexslider.min.css">
FlexSliderはjQuery3では正常に動作しないのでjQuery2を使います
jQuery3対応・jQuery不要の最新スライダーを使うならこちら
jQuery不要・モバイルファーストの軽量スライダー Swiper
設置が簡単、カスタマイズ豊富、jQueryプラグイン slick
こちらも昔からあるjQueryプラグイン bxSlider
2.スライダー用HTML
fleslider用ラッパー.flexslider
に.slides
クラスを作成、スライドする要素をli
で囲みます。.slides
というクラスは必ず必要で、名前を変更したい場合はオプション指定して変更できます。
<div class="flexslider">
<ul class="slides">
<li>スライド0</li>
<li>スライド1</li>
<li>スライド2</li>
<li>スライド3</li>
<li>スライド4</li>
</ul>
</div>
3.イニシャライズ
jQuery,flexsliderよりも後に記述します。
$(window).load(function() {
$('.flexslider').flexslider({
//カスタマイズはここに記述
});
});
See the Pen flexslider by mixtaro (@mixtaro) on CodePen.
Flexslider2を複数設置した場合の動作
上記の設置サンプルでは、flexsliderを複数設置しています。flexsliderを1ページに複数設置する場合、スライダー用のラッパー.flexsliderに固有のIDをつけて識別します。どちらもclassは.flexslider
です。
classに.flexsliderをつけないと、ナビゲーションなどの位置がちょっとおかしくなります。
<!-- 一つめのスライダー #slide1 -->
<div class="flexslider" id="slide1">
<ul class="slides">
<li>スライド0</li>
<li>スライド1</li>
<li>スライド2</li>
<li>スライド3</li>
<li>スライド4</li>
</ul>
</div>
<!-- 2つ目のスライダー #slide2 -->
<div class="flexslider" id="slide2">
<ul class="slides">
<li><img src="https://placehold.jp/D6BA73/ffffff/150x150.png"/></li>
<li><img src="https://placehold.jp/8BBF9F/ffffff/150x150.png"/></li>
<li><img src="https://placehold.jp/857E7B/ffffff/150x150.png"/></li>
<li><img src="https://placehold.jp/59344F/ffffff/150x150.png"/></li>
<li><img src="https://placehold.jp/F5E0B7/ffffff/150x150.png"/></li>
</ul>
</div>
$(window).load(function() {
//ひとつめのスライダー
$('#slide1').flexslider({
animation: "slide"
});
//2つ目のスライダー
$('#slide2').flexslider({
animation: "fade"
});
});
Flexslider2のオプション
flexsliderで設定できるオプションの一覧です。
基本的なプロパティ
プロパティ | 初期値 | 説明 |
---|---|---|
namespace: | flex- | flexsliderが生成する接頭辞を指定 |
selector: | .slides > li | スライドするセレクタを指定 |
animation: | fade | アニメーションのタイプ "fade" or "slide" |
easing: | swing | jquery transtion を指定 |
direction: | horizontal | スライドする方向 "horizontal" or "vertical" |
reverse: | false | 真偽値(boolean) アニメーションの方向を逆行するかどうか |
animationLoop: | true | 真偽値(boolean) アニメーションをループさせるかどうか |
smoothHeight: | false | 真偽値(boolean) horizontal modeのときにスライドのたかさを |
startAt: | 0 | 何番目の要素からスライドをスタートするか |
slideshow: | true | 真偽値(boolean) アニメーションスライドを自動再生するか |
slideshowSpeed: | 7000 | スライドのスピード(ミリ秒:1/1000) |
animationSpeed: | 600 | アニメーションのスピード(ミリ秒:1/1000) |
initDelay: | 0 | スライドをスタートするまでの時間 |
randomize: | false | 真偽値(boolean) スライドをランダムでスライドさせる |
pauseOnAction: | true | 真偽値(boolean) コントロール要素を操作している間、スライドを中止するかどうか |
pauseOnHover: | false | 真偽値(boolean) マウスオーバーでスライドを中止するかどうか |
useCSS: | true | 真偽値(boolean) css3対応可能な状況ならcss3トランジョンを使う |
touch: | true | タッチデバイスでスワイプ動作を可能にするかどうか |
video: | false | 真偽値(boolean) スライドに動画を含むかどうか |
See the Pen flexslider -carousel by mixtaro (@mixtaro) on CodePen.
スライドのコントロール機能
プロパティ | 初期値 | 説明 |
---|---|---|
controlNav: | true | スライダーナビゲーション(○○○●)を表示するかどうか |
directionNav: | true | 両サイドのprev(<),Next(>)を表示するかどうか |
prevText: | Previous | directionNavがtrueの場合の「戻る」のテキスト |
nextText: | Next | directionNavがtrueの場合の「次へ」のテキスト |
オプション的なナビゲーション機能
プロパティ | 初期値 | 説明 |
---|---|---|
keyboard: | true | 真偽値(boolean) キーボードの←→でスライドの移動を可能にするかどうか |
multipleKeyboard: | true | 真偽値(boolean) 両サイドのprev(<),Next(>)を表示するかどうか |
mousewheel: | false | 真偽値(boolean) マウスホイールでの移動を許可するかどうか jquery.mousewheel.js が必須 |
pausePlay: | false | 真偽値(boolean) 「再生」「停止」ボタンを表示するかどうか |
pauseText: | Pause | 文字列 pausePlay:がtrueの時、「停止」ボタンのテキスト |
playText: | Play | 文字列 pausePlay:がtrueの時、「再生」ボタンのテキスト |
特別プロパティ
プロパティ | 初期値 | 説明 |
---|---|---|
controlsContainer: | FlexSliderのコンテナー要素「.flexslider-container」 | |
manualControls: | コントロール要素を独自の名前をつける 例(.flex-control-nav li/#tabs-nav li img) | |
sync: | 他のスライダーと同期させる(扱い注意) | |
asNavFor: | スライダーを別のスライダーのサムネイルナビゲーションにするためのプロパティ |
カルーセルオプション
itemWidth: | 0 | 数値 アイテムの幅サイズ |
---|---|---|
itemMargin: | 0 | 数値 アイテム間のマージン |
minItems: | 0 | 数値 アイテムの最小値。画面リサイズ(レスポンシブ)時の下限。 画面が小さくなっても表示させるアイテム数 |
maxItems | 0 | 数値 アイテムの最大値。画面リサイズ(レスポンシブ)時の上限。 大きい画面で表示した場合の最大表示数 |
move: | 0 | 数値 カルーセルが動くときに移動するアイテムの数 |