http://idangero.us/swiper/
Swiper.jsはレスポンシブ対応のコンテンツスライダーとしておすすめです。
DEMOページにはオーソドックスなカルーセル以外にも、様々なタイプのサンプルが用意されています。
さらに、充実したAPIとコールバックによって様々な関数処理を実行することができます。
コールバックとは… 他関数の引数として、特定のタイミングで実行することができます。
例)「処理Aが終わった後に、処理Bを実行したい」
過去の使用実績としては、全画面タイプのスライドを6枚まで自動再生+マウスホイールでもページ送り、
最後のスライドに到達した時点でホイール判定を無効化し下部のコンテンツを見せる。
といったスライダーを実装しました。
基本のHTML構造としては下記。
<!-- Slider main container -->
<div class="swiper-container">
<!-- Additional required wrapper -->
<div class="swiper-wrapper">
<!-- Slides -->
<div class="swiper-slide">Slide 1</div>
<div class="swiper-slide">Slide 2</div>
<div class="swiper-slide">Slide 3</div>
...
</div>
<!-- If we need pagination -->
<div class="swiper-pagination"></div>
<!-- If we need navigation buttons -->
<div class="swiper-button-prev"></div>
<div class="swiper-button-next"></div>
<!-- If we need scrollbar -->
<div class="swiper-scrollbar"></div>
</div>
CSSはこちら
html, body {
position: relative;
height: 100%;
}
body {
background: #eee;
font-family: Helvetica Neue, Helvetica, Arial, sans-serif;
font-size: 14px;
color:#000;
margin: 0;
padding: 0;
}
.swiper-container {
width: 100%;
height: 100%;
}
.swiper-slide {
text-align: center;
font-size: 18px;
background: #fff;
/* Center slide text vertically */
display: -webkit-box;
display: -ms-flexbox;
display: -webkit-flex;
display: flex;
-webkit-box-pack: center;
-ms-flex-pack: center;
-webkit-justify-content: center;
justify-content: center;
-webkit-box-align: center;
-ms-flex-align: center;
-webkit-align-items: center;
align-items: center;
}
Script部分はこんな感じ
<script>
var swiper = new Swiper('.swiper-container', {
pagination: '.swiper-pagination', //ページネーション表示
paginationClickable: true, //ページネーションのクリック有効
direction: 'vertical', //垂直方向に動作
loop: true, //ループ動作
autoplay: 5000, //自動再生開始までの待ち時間
speed: 500, //スライドの切り替えに要する時間
mousewheelControl: true, //マウスホイールでページ送り
queueEndCallbacks: true,
onReachEnd: function(){ //最後のスライドまで達したときに実行する処理
swiper.disableMousewheelControl(); //マウスホイール判定を無効化
swiper.disableTouchControl(); //タッチ判定を無効化
},
});
</script>