HOME>WEBプログラム覚書>javascript 反転処理1

javascript 反転処理1

タブパネルを自力で実装することになった場合、 ひとつの要素がtrue(表示)の時、 その他の要素をfalse(非表示)にさせる仕組みって どうすればいいんだろうと思って試し書き。

サンプルコード

id="test"内のli要素がクリックされた場合、 クリックされたliの背景は青、その他のliの背景は黒になるように。

Javascript

  1. onload = function()
  2. {
  3.     // id="test"内のli要素を取得
  4.     var lis = document.getElementById("test").getElementsByTagName("li");
  5.  
  6.     for(var i=0; i<lis.length; i++){
  7.  
  8.         //自分がlisの何番目の要素か
  9.         lis[i].num = i;
  10.  
  11.         //最初はfalse
  12.         lis[i].flag = false;
  13.  
  14.         // クリックされた時の処理
  15.         lis[i].onclick = function(){
  16.             turnOver(this.num);
  17.         }
  18.     }
  19.  
  20.     // li.flagを反転させる
  21.     function turnOver(k){
  22.         for(var i=0; i<lis.length; i++){
  23.             if (i == k) {
  24.                 lis[i].flag = true;
  25.             } else {
  26.                 lis[i].flag = false;
  27.             }
  28.         }
  29.         cssChange();
  30.     }
  31.  
  32.     // obj.flagの値によりCSSを変化
  33.     function cssChange(){
  34.         for(var i=0; i<lis.length; i++){
  35.             if (lis[i].flag) {
  36.                 lis[i].style.backgroundColor = "blue";
  37.             } else {
  38.                 lis[i].style.backgroundColor = "gray";
  39.             }
  40.         }
  41.     }
  42.  
  43.     // 初期設定
  44.     lis[0].style.backgroundColor = "blue";
  45. }
  46.  

HTML

  1. <ul id="test">
  2.     <li>Menu1</li>
  3.     <li>Menu2</li>
  4.     <li>Menu3</li>
  5.     <li>Menu4</li>
  6.     <li>Menu5</li>
  7. </ul>
  8.  

実行結果

  • Menu1
  • Menu2
  • Menu3
  • Menu4
  • Menu5

とりあえずこんな感じで動くっぽい。

タブパネルを実現するライブラリはたくさんあるので 美しい処理がされているの探してみたいと思います。

投稿日 2009年1月15日 22:28
カテゴリ JavaScript
タグ サンプルコード
トラックバック URL http://www.kantenna.com/cgi-bin/mt504/mt-tb.cgi/1150

コメント

コメントする
Name
Email Address
URL