jQuery
Tips
jQueryで追加のプラグイン不要のタブ
jQueryで動くタブのサンプルです。もっと効率の良いプラグインはいくらでもあるのですが...データの整理も兼ねて覚え書きです。
jQueryでTab
IE8+ / jQuery 2.2(1.12) 動作確認
jQuery本体のみで動くタブの使い方
いつも通りjQuery本体を読み込みます。
<!--[if lt IE 9]> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.2/jquery.min.js"></script> <![endif]--> <!--[if gte IE 9]><!--> <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.2/jquery.min.js"></script> <!--<![endif]-->
タブのjs部分
タブ内容を2行目で指定、タブ切り替えのボタンを3行目で指定。タブのカレント表示用classを4行目で指定。
$(function(){ var panel = ['#content1','#content2','#content3']; var btn = ['#button1','#button2','#button3']; var activeClass = 'success'; // 一旦すべてのコンテンツを非表示にする $('.content').hide(); // 最初はコンテンツ1を表示する var $activePanel = $(panel[0]).show(); // 最初はボタン1の色を変える var $activeButton = $(btn[0]).addClass(activeClass); function tabPanelChange(n){ // ボタンのイベント処理 $(btn[n]).on('click',function(){ // アクティブなボタンを非アクティブ表示にする $activeButton.removeClass(activeClass); // 現在表示されているコンテンツを非表示にする $activePanel.hide(); // ボタンをアクティブ表示にする $(this).addClass(activeClass); // コンテンツを表示する $(panel[n]).fadeIn("slow"); $activePanel = $(panel[n]); $activeButton = $(this); // #対応 return false; }); } // ボタンの数だけ実行 for(var i = 0 ; i < btn.length ; i++){ tabPanelChange(i); } });
タブのhtml部分
カレント表示部分のclassはhtml側には記述していません。
<!--ボタン--> <nav> <ul> <li><a href="#" id="button1">ボタン1</a></li> <li><a href="#" id="button2">ボタン2</a></li> <li><a href="#" id="button3">ボタン3</a></li> </ul> </nav> <!--コンテンツ1--> <div class="content" id="content1"> <section> 〜 内容 〜 </section> </div> <!-- コンテンツ2 --> <div class="content" id="content2"> <section> 〜 内容 〜 </section> </div> <!-- コンテンツ3 --> <div class="content" id="content3"> <section> 〜 内容 〜 </section> </div>
タブのCSS部分
カレント表示部分だけ指定してあげれば、とりあえずは動きます。
/* ボタンをアクティブにする */ .success{color: #fff; background-color: #99cc33;}