** はじめに [#v882d8a2]
 ** はじめに [#dfbd9cb5]
 
 こんにちは、竹村です。
 
 最近、jCarouselLite の利用頻度の高くなってきています。
 jCarouselLite は、表示エリアが限られている場所で多くの画像バナーを表示できるウィジェットです。
 下記のようなものです。
 
 http://okra.ark-web.jp/~takemura/public/js/jcarousellite/acc/normal.html
 #ref(,左右のボタンをクリックすると画像バナーがスクロールして表示されている,nolink)
 #ref(sample_nomal.jpg,nolink,左右のボタンをクリックすると画像バナーがスクロールして表示されている)
 
 jCarouselLiteの公式サイト:http://gmarwaha.com/jquery/jcarousellite/
 
 jCarouselLite は画像バナーを指定した秒数待ってから自動的にスクロールする機能があります。
 これによって、ボタンを押さなくてもループ再生されるのでアクティブ感が得られるのは良いのですが、
 ''自動的にループ再生できるくせに、停止や再スタートの機能がありません。''
 
 これでは、JIS X 8341-3:2009 7.2.2.2 (WCAG 2.0 2.2.2, 2.2.3)に適用できないため、改修しました。
 
 ** 目次 [#x6ad7ae1]
 現在は、githubからダウンロードできるようにしています。
 
 http://github.com/tiadeen2/jCarouselLite_auto_controller
 
 #blikimore
 
 ** 目次 [#b79c4176]
 #contents
 
 ** なぜ jCarousel を使わない? [#r2cc59bc]
 ** なぜ jCarousel を使わない? [#g38c9b22]
 
 autoの停止/再スタートは実は jCarousel (http://sorgalla.com/jcarousel/ ) に実装してあります。
 …が、なぜ jCarousel を使わないで、jCarouselLite にこだわるか、というと''既に jCarouselLite を使って実装したサイトがあるから'' です。
 
 jCarouselLiteは jCarouselより導入が簡単です。よって、既に実装済みのものをリプレイスするよりは
 機能の差分をプラスした方がやり易いと判断しました。
 
 現在は、githubからダウンロードできるようにしています。
 ** インストール方法 [#t21c4241]
 
 http://github.com/tiadeen2/jCarouselLite_auto_controller
 
 #blikimore
 
 ** インストール方法 [#e1f99401]
 
 - jCarouselLiteと同じです。Option が増えただけという認識でOKです。
 
 ** 追加したOption [#y3ab7f0b]
 ** 追加したOption [#n463583f]
 
 4つ追加してあります。
 
 - btnStart, btnStop :
 停止/再生ボタンのElement名を指定する。autoオプションがnullでなければ、自動的にbtnStartを押した挙動となる。
 - afterStop, afterStart :
 停止/再生ボタンが実行された時に呼び出されるコールバック関数を指定しておける。
 
 
 btnStart, btnStop は、btnPrev, btnNext と同じように「Element名」を指定します。
 afterStop, afterStart は、afterEnd と同じように「停止時、再生時に呼び出されるコールバック関数」を指定します。
 
 ** サンプル [#oe193f62]
 ** サンプル [#qac7fc5b]
 
 このコールバック関数で、再生ボタンを停止ボタンに差し替えたりすることができます。
 下記のような感じです。
 
   <script type="text/javascript">
   $(".jcarousellite").jCarouselLite({
     btnNext: ".next",
     btnPrev: ".prev",
     auto: 1000,
     btnStart: ".start",
     btnStop:  ".stop",
     afterStart: function() {
       jQuery(".start").css("display", "block");
       jQuery(".stop").css("display", "none");
     },
     afterStop: function() {
       jQuery(".start").css("display", "block");
       jQuery(".stop").css("display", "none");
     }
   });
   </script>
   :
   <style type="text/css">
   .start {display:none}
   </style>
   :
   <div class="jcarousellite">
   <div class="controller">
     <button class="prev">前へ</button>
     <button class="stop">停止</button>
     <button class="start">再生</button>
     <button class="next">次へ</button>
   </div>
   <div class="carousel">
     <ul>
     <li><img src="example1.jpg" alt="example1" /></li>
     <li><img src="example2.jpg" alt="example2" /></li>
     <li><img src="example3.jpg" alt="example3" /></li>
     </ul>
   </div>
   </div>
 
 - 最初は再生ボタンが表示されないようにCSS上で .start を非表示にしています。
 - afterStart, afterStop のコールバック関数で表示/非表示を入れ替えています。
 
 上記コードの実際のサンプルは↓こちらにあります。
 http://okra.ark-web.jp/~takemura/public/js/jcarousellite/acc/
 #ref(,停止ボタンをクリックすると自動スクロールが止まり、手動で前後ボタンをクリックしても、停止中は自動スクロールにはなりません。再度自動スクロールにするには、再生ボタンをクリックします。,nolink)
 #ref(sample_acc.jpg,nolink,停止ボタンをクリックすると自動スクロールが止まり、手動で前後ボタンをクリックしても、停止中は自動スクロールにはなりません。再度自動スクロールにするには、再生ボタンをクリックします。)
 
 
 ** ダウンロード [#j47ed773]
 ** ダウンロード [#ya1fa04c]
 
 上記に書きましたが、githubからダウンロードできるようにしています。
 
 http://github.com/tiadeen2/jCarouselLite_auto_controller
 
 
 ** さいごに [#c261e8b7]
 ** さいごに [#m901912c]
 
 今回の実装にはWAI-ARIAへの対応などは含まれていません。
 実装のアラを探せば色々あると思いますが、ちょっとずつ対応して、
 それを公開していければと思っています。
 
 #blikifooter(竹村)
 
 Tag: [[JavaScript>Tag/JavaScript]], [[jQuery>Tag/jQuery]]
 Tag: [[JavaScript>tag/JavaScript]], [[jQuery>tag/jQuery]]
 
 

トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS

アークウェブのサービスやソリューションはこちら