タブメニューボックス
yetii.js


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>無題ドキュメント</title>
<style type="text/css">
<!--
*{padding:0; margin:0;}
body{margin:10px;font-size:12px;color:#333; background-color:#000}
strong{color:#FF9900;}
div#tab-container-1 ul{
height:30px;
border-left:1px solid #999;
border-bottom:1px solid #999;
list-style:none;
}
div#tab-container-1 ul li{
width:70px;
height:29px;
border:1px solid #999;
border-left:none;
border-bottom:none;
background-color:#DDD;
float:left;
}
div#tab-container-1 ul li.activeli{
height:30px;
background-color:#FFF;
}
div#tab-container-1 ul li a{
display:block;
width:70px;
height:22px;
padding-top:8px;
color:#000;
text-align:center;
text-decoration:none;
}
div#tab-container-1 ul li.activeli a{font-weight:bold;}
div.tab{
border:1px solid #999;
border-top:none;
padding:10px;
background-color:#FFF;
}
-->
</style>
<script type="text/javascript" src="yetii.js"></script>
</head>
<body>
<div id="tab-container-1">
<ul id="tab-container-1-nav">
<li><a href="#sampletab1">SAMPLE1</a></li>
<li><a href="#sampletab2">SAMPLE2</a></li>
<li><a href="#sampletab3">SAMPLE3</a></li>
</ul>
<div class="tab" id="sampletab1">
SAMPLE<strong>1</strong>で切り替えられるボックス
</div>
<div class="tab" id="sampletab2">
SAMPLE<strong>2</strong>で切り替えられるボックス
</div>
<div class="tab" id="sampletab2">
SAMPLE<strong>3</strong>で切り替えられるボックス
</div>
<script type="text/javascript">
var tabber1 = new Yetii({
id: 'tab-container-1'
});
</script>
</div>
</body>
</html>




構造と導入がシンプルで、動作も軽快なタブ切り替え型ボックス、yetii.js。
yetii.jsのみで動作する為、他のライブラリを読み込まなくて良い。
デザインもCSSで行いやすく、タグの構造もシンプルなので、CMS等に導入しやすいと思う。
上記「Download」タブから、Yetiisへ行きダウンロード。
ページ下部の「yetii.js」というリンクをクリックすると、jsファイルが表示されるので、
それをyetii.jsと名前をつけて、任意の場所へ保存する。
<script type="text/javascript" src="yetii.js"></script>
ヘッダーにyetii.jsを読み込ませる。
とりあえず準備はこれだけ。
まず、タブ切り替えの範囲を下記のようにマークアップ。
<div id="tab-container-1"> </div>
id="tab-container-1"を定義つけるのが重要。
次は上記のタグ内に、タブメニューを設置。
<div id="tab-container-1"> <ul id="tab-container-1-nav"> <li><a href="#sampletab1">SAMPLE1</a></li> <li><a href="#sampletab2">SAMPLE2</a></li> <li><a href="#sampletab3">SAMPLE3</a></li> </ul> </div>
ulに、tab-container-1-navを定義する。
li内のリンクには切り替えターゲットのボックスのIDを設定。
次はそのターゲットのボックスを設置する。
<div id="tab-container-1"> <ul id="tab-container-1-nav"> <li><a href="#sampletab1">SAMPLE1</a></li> <li><a href="#sampletab2">SAMPLE2</a></li> <li><a href="#sampletab3">SAMPLE3</a></li> </ul> <div class="tab" id="sampletab1"> SAMPLE<strong>1</strong>で切り替えられるボックス; </div> <div class="tab" id="sampletab2"> SAMPLE<strong>2</strong>で切り替えられるボックス; </div> <div class="tab" id="sampletab2"> SAMPLE<strong>3</strong>で切り替えられるボックス; </div> </div>
このとき、ターゲットのボックスのクラスに"tab"を定義することを忘れない。
そして最後に、スクリプト実行のトリガーを設置する。
<script type="text/javascript">
var tabber1 = new Yetii({
id: 'tab-container-1'});
</script>
これは適当なところでOK。
yetii.jsにid="tab-container-1"を処理する命令を送っている。
同一ページ内に複数のタブを設置したい場合は、htmlのid,jsの部分のtab-container-1を変更する。
数字を変更するのが分かりやすくていいかもしれない。 最後のjsはとりあえず設置した数だけ設定しておく。
選択されているタブには、以下のようなクラスが追加されるので、CSSで定義しておく。
<li class="activeli"><a class="active" href="#sample1">SAMPLE1</a></li>
ボックスのCSSクラス、tab。
複数のユニットとしてタブパネルを使用する場合には、CSSのプロパティを設定しない方が、使いやすくて良いかも知れない。
新しく自分で設定したクラスを追加定義しておく。
タグの構造が分かりやすいのがとても良いよ思う。
アニメーション的なアクションは無いけど、よく使うようなポジションにタブを入れるなら余計なアニメーションが無い方がうっとうしくなくていいかな。
タブの入れ子も出来るみたいだけど、とりあえず使い道が思いつかないので理解しないでいいや。
SolidStateEverydayでご紹介しているAjax,Javascript等のスクリプトをご利用になる場合は、必ず製作元のサイトで使用ライセンスを確認してください。ご利用は自己責任でお願い致します。