フラットなデザインのタブを実装するjQueryコードとCSSを紹介します。
例によって簡単にタブを作れるjQueryライブラリがありますので、めんどうな方はそちらを使用するとラクチンだと思います。
jQueryライブラリ
jQueryUI
jQueryコード
仮にjquery.tab.jsと名前をつけて保存
$(function(){ $('.tabbox:first').show(); $('#tab li:first').addClass('active'); $('#tab li').click(function() { $('#tab li').removeClass('active'); $(this).addClass('active'); $('.tabbox').hide(); $($(this).find('a').attr('href')).fadeIn(); return false; }); });
2行目[.tabbox] 実際に切り替わるコンテンツ部分
3,4,5行目[#tab li] クリックするタブ
大体のコード記述の流れはこんな感じです。
- jquery発動のための準備
- [.tabbox]要素ひとつめを表示
- [#tab li]要素ひとつめにクラス[active]が付加
- タブがクリックされた際の動作を指定
- [#tab li]要素ひとつめからクラス[active]が取り除かれる
- クリックされた[#tab li]要素にクラス[active]が付加
- [.tabbox]要素を非表示
- クリックした[#tab li]要素から[a]要素を探して中身を取得しフェードインで表示
HTML
head内
<link href="style.css" rel="stylesheet" type="text/css" media="all" /> <script type="text/javascript" src="jquery-1.7.2.min.js"></script> <script type="text/javascript" src="jquery.tab.js"></script>
body内
<ul id="tab"> <li class="selected"><a href="#tab1">タブ1</a></li> <li><a href="#tab2">タブ2</a></li> <li><a href="#tab3">タブ3</a></li> <li><a href="#tab4">タブ4</a></li> <li><a href="#tab5">タブ5</a></li> </ul> <div id="detail"> <div id="tab1" class="tabbox"> <p>タブ1のコンテンツ。</p> <!-- #tab1 --></div> <div id="tab2" class="tabbox"> <p>タブ2のコンテンツ。</p> <!-- #tab2 --></div> <div id="tab3" class="tabbox"> <p>タブ3のコンテンツ。</p> <!-- #tab3 --></div> <div id="tab4" class="tabbox"> <p>タブ4のコンテンツ。</p> <!-- #tab4 --></div> <div id="tab5" class="tabbox"> <p>タブ5のコンテンツ。</p> <!-- #tab5 --></div> <!-- #detail --></div>
CSS
ul#tab { zoom: 1; background: #c9c3c4; border-bottom: 3px solid #c81528; list-style: none; margin: 0 auto; padding: 0; } ul#tab:after { content:"."; display: block; height:0px; clear:both; line-height:0; visibility:hidden; } ul#tab li { float: left; text-align: center; } ul#tab li:last-child { background: none; } ul#tab li a { display: block; width: 138px; padding: 8px 0; text-decoration: none; color: #222; } ul#tab li a:hover { background: #c95560; color: #fff; } ul#tab li.active, ul#tab li.active a, ul#tab li.active a:hover { background: #c81528; color: #fff; } #detail { clear: both; overflow: hidden; background: #f7f7f7; width: 650px; height: 200px; padding: 20px; } .tabbox { display: none; }
最近のコメント