イントロダクション
記事「HTMLとJavaScriptでタブコントロールを作ってみた-タブ:上」では、上にタブの一覧が表示されるタブコントロールを HTML と JavaScript で作成してみました。今回は、そのコードを修正して、下にタブの一覧が表示されるタブコントロールを作成します。
コード
変更点
のコードとの変更点は、JavaScript の次の一行のみです。
変更前
obj_tabControl.innerHTML = tabHeader_html + "<br />" + tabMain_html;
変更後
obj_tabControl.innerHTML = tabMain_html + tabHeader_html + "<br />";
コードからわかるように、タブのあとに内容を出力していたものを、内容のあとにタブを出力するように変更しています。
スタイルシート
以下のスタイルシートを<head>内に埋め込みます。<style type="text/css">
.tabControl-data
{
display:none;
}
.tabControl-tab
{
border-style:solid;
border-width:1px;
background-color:#cccccc;
/* 付加的要素 */
padding:0px 16px 0px 16px;
}
.tabControl-tab-selected
{
background-color:#ffffcc;
}
.tabControl-main
{
border-style:solid;
border-width:1px;
/* 付加的要素 */
padding:10px;
}
</style>
.tabControl-data はタブコントロール用のデータを記憶している要素なので、非表示にします。
.tabControl-tabはタブコントロールのタブの部分です。
枠線を設定しています。
また、非選択のタブは背景色が灰色になるようにしています。
.tabControl-tab-selectedは選択されたタブコントロールのタブの部分です。
背景色が明るい黄色になるようにしています。
.tabControl-mainはタブコントロールの内容を表示する部分です。
枠線を設定しています。
head内のJavaScript
以下の JavaScript を<head>内に埋め込みます。<script type="text/javascript">
<!--
/*
タブコントロールの初期化
通常、onload にて呼び出します。
id_tabControl : タブコントロールの id
id_tabControl_data : タブコントロールのデータの id
*/
function initTabControl(id_tabControl, id_tabControl_data) {
changeTabControl_Tab(id_tabControl, id_tabControl_data, 0);
}
/*
アクティブなタブを選択
id_tabControl : タブコントロールの id
id_tabControl_data : タブコントロールのデータの id
tabNumber : 選択するタブの番号( 0 から )
*/
function changeTabControl_Tab(id_tabControl, id_tabControl_data, tabNumber) {
var obj_tabControl = document.getElementById(id_tabControl);
var obj_tabControl_data = document.getElementById(id_tabControl_data);
var tabHeader_html = ""; // タブのヘッダー
var tabMain_html = ""; // タブの内容
var tabCount = 0;
for (var i = 0; i < obj_tabControl_data.childNodes.length; i++) {
// タブのデータの要素(div) の場合、タイトルの列挙と選択されたタブの内容の取得を実行
if ( obj_tabControl_data.childNodes[i].tagName ) {
if ( obj_tabControl_data.childNodes[i].tagName.toLowerCase() == "div" ) {
// タイトルの列挙
tabHeader_html += "<span class=\"tabControl-tab" + ((tabNumber == tabCount) ? " tabControl-tab-selected" : "") + "\"><a href=\"javascript:void(0);\" onClick=\"changeTabControl_Tab(\'" + id_tabControl + "\', \'" + id_tabControl_data + "\', " + tabCount + ")\">" + obj_tabControl_data.childNodes[i].title + "</a></span>";
// 選択されたタブの内容の取得
if (tabNumber == tabCount) {
tabMain_html += "<div class=\"tabControl-main\">" + obj_tabControl_data.childNodes[i].innerHTML + "</div>";
}
tabCount++;
}
}
}
// タブコントロールを表示
obj_tabControl.innerHTML = tabMain_html + tabHeader_html + "<br />";
}
//-->
</script>
initTabControl メソッドにて、タブコントロールを作成しています。
changeTabControl_Tab メソッドにて、タブコントロールのタブの切り替えを実施します。
bodyタグへイベントを追加
以下のイベントを body タグへ追加します。onload="initTabControl('tabControl1', 'tabControl-data1')"
これにより、ページ読み込み時にタブコントロールが作成されます。
タブコントロールの id、タブコントロールのデータの id を引数に指定しています。
複数のタブコントロールを同じページに配置する場合などは、initTabControl に対応するタブコントロールの id を指定して、タブコントロールの数だけ呼び出してください。
body内のhtml
以下の html を<body>内のタブコントロールを表示させたい位置に埋め込みます。<div class="tabControl" id="tabControl1"> <!-- タブコントロールの本体 --> </div> <div class="tabControl-data" id="tabControl-data1"> <!-- タブコントロールで使用するデータ --> <!-- タブ1 --> <div title="タブ1"> <br /> タブ1のデータです。<br /> <br /> </div> <!-- タブ2 --> <div title="タブ2"> <br /> タブ2のデータです。<br /> <br /> </div> <!-- タブ3 --> <div title="タブ3"> <br /> タブ3のデータです。<br /> <br /> </div> </div>
<div class="tabControl-data" id="tabControl-data1">
</div>
の中にタブのデータを記載します。
以下の部分が一つのタブに相当します。
<!-- タブ1 -->
<div title="タブ1">
<br />
タブ1のデータです。<br />
<br />
</div>
作成するタブの数だけ、上記のコードを並べます。
<div title="タブ1"> の title 属性がタブの名前になります。
<div title="タブ1"></div>の内部に記載したデータがタブコントロールの内容になります。
結果
以下のように、HTML と JavaScript でタブが下にあるタブコントロールを作成できました。
初期状態
↓
タブ2をクリック
タブ2へ切り替わる
プレビュー
実際に操作できる要素を以下に配置します。タブ1のデータです。
タブ2のデータです。
タブ3のデータです。
HTMLとJavaScriptでタブコントロールを作ってみたシリーズ

HTMLとJavaScriptでタブコントロールを作ってみた-タブ:上
http://upa-pc.blogspot.com/2014/05/html-tabControl-top.html
Dr.ウーパのコンピュータ備忘録
http://upa-pc.blogspot.com/2014/05/html-tabControl-top.html
Dr.ウーパのコンピュータ備忘録

HTMLとJavaScriptでタブコントロールを作ってみた-タブ:下
http://upa-pc.blogspot.com/2014/05/html-tabControl-bottom.html
Dr.ウーパのコンピュータ備忘録
http://upa-pc.blogspot.com/2014/05/html-tabControl-bottom.html
Dr.ウーパのコンピュータ備忘録

HTMLとJavaScriptでタブコントロールを作ってみた-タブ:左
http://upa-pc.blogspot.com/2014/05/html-tabControl-left.html
Dr.ウーパのコンピュータ備忘録
http://upa-pc.blogspot.com/2014/05/html-tabControl-left.html
Dr.ウーパのコンピュータ備忘録

HTMLとJavaScriptでタブコントロールを作ってみた-タブ:右
http://upa-pc.blogspot.com/2014/05/html-tabControl-right.html
Dr.ウーパのコンピュータ備忘録
http://upa-pc.blogspot.com/2014/05/html-tabControl-right.html
Dr.ウーパのコンピュータ備忘録


コメントを投稿 (ここをクリックしてコメント投稿フォームを表示)
コメント投稿機能について