タブパネルを自力で実装することになった場合、 ひとつの要素がtrue(表示)の時、 その他の要素をfalse(非表示)にさせる仕組みって どうすればいいんだろうと思って試し書き。
id="test"内のli要素がクリックされた場合、 クリックされたliの背景は青、その他のliの背景は黒になるように。
onload = function()
{
// id="test"内のli要素を取得
var lis = document.getElementById("test").getElementsByTagName("li");
for(var i=0; i<lis.length; i++){
//自分がlisの何番目の要素か
lis[i].num = i;
//最初はfalse
lis[i].flag = false;
// クリックされた時の処理
lis[i].onclick = function(){
turnOver(this.num);
}
}
// li.flagを反転させる
function turnOver(k){
for(var i=0; i<lis.length; i++){
if (i == k) {
lis[i].flag = true;
} else {
lis[i].flag = false;
}
}
cssChange();
}
// obj.flagの値によりCSSを変化
function cssChange(){
for(var i=0; i<lis.length; i++){
if (lis[i].flag) {
lis[i].style.backgroundColor = "blue";
} else {
lis[i].style.backgroundColor = "gray";
}
}
}
// 初期設定
lis[0].style.backgroundColor = "blue";
}
-------------------
HTML
-------------------
<ul id="test">
<li>Menu1</li>
<li>Menu2</li>
<li>Menu3</li>
<li>Menu4</li>
<li>Menu5</li>
</ul>
とりあえずこんな感じで動くっぽい。
タブパネルを実現するライブラリはたくさんあるので 美しい処理がされているの探してみたいと思います。
/ 金額 : ¥ 2,499
1-5
6-10