JavaScriptで簡単にタブ機能を実装

Category

JavaScript/Ajax

投稿日

2008/08/01 - 23:42

ブックマーク

今週は会社の先輩が1週間病欠という大変ファッキンな事態に陥ったためくそ忙しくて、開始して1ヶ月も経ってないのにまったくブログを書いている暇がなかった。。。

そしてネタも無いためまた、前に作ったサンプルを投稿してお茶を濁しておく!

今回はタブ機能を簡単に使えるJSです。

特徴は簡単に、何個でもタブを追加できる点です。
「1ページに2つも3つもタブなんかつかわねー。」という意見は受け付けません。

早速使い方メモ!

まずは何はなくともJSを読み込む

<script type="text/javascript" src="js/easy_tab.js"></script>

次に、タブ要素の全体をclass:tabMenuで括ります。

<div class="tabMenu">
...........................
.................
..........
</div>

タブのメニューにあたる部分はul(ol)タグでマークアップし、class:tabIndexを付与します。
個々のメニューのliタグにはページを開いたときに表示させておきたい部分にclass:activeを付与します。

<div class="tabMenu">
<ul class="tabIndex">
<li>メニュー1</li>
<li class="active">メニュー2</li>
<li>メニュー3</li>
</ul>

今回の例で行くとデフォルトではメニュー2の内容が表示されるようになります。

ここでの注意点としてはメニューは必ずliタグでないとダメです。仕様です。
更にliタグにはactive以外のclassはつけられません。

次にタブの内容にあたる部分にはclass:tabContentsを付与します。

<div class="tabMenu">
<ul class="tabIndex">
<li>メニュー1</li>
<li class="active">メニュー2</li>
<li>メニュー3</li>
</ul>
<p class="tabContents">内容1内容1内容1内容1内容1内容1内容1内容1内容1内容1内容1内容1内容1</p>
<p class="tabContents">内容2内容2内容2内容2内容2内容2内容2内容2内容2内容2内容2内容2</p>
<p class="tabContents">内容3内容3内容3内容3内容3内容3内容3内容3内容3内容3内容3内容3内容3</p>
</div>

タブの内容部分のマークアップはclassがtabContentsでさえあれば、pタグでもdivタグでもdlタグでも何でもOKです。お好きなように。

これで完成です。見た目の制御はCSSでお願いします。

また、あえて言わなくても分かるとは思いますが、tabIndexの中の1番目に記述されているliタグと1番目のtabContentsが紐づいています。2番目のliタグは同様に2番目のtabContentsといった具合です。あと、当たり前ですけど、tabIndexのメニューの数とtabContentsの数は必ず一致していないといけません。

複数タブを使う場合はtabMenuを増やせばOKです。

対象ブラウザ
  • WindowsIE6,7
  • Firefox2以上
  • Opera9.25以上
  • Safari2以上

最後にサンプルやらソースをば。

サンプルページ

サンプルで使用しているJSやらCSSやら一式

MITライセンスなので使いたい方ご自由にカスタマイズどぞー。

This Entry's Tag
javascript,sample

Trackback URI

http://mk-t-lab.com/mt/mt-tb.cgi/16

Post Your Comment

コメント投稿フォーム