KANTENNA.COM

Solarized

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.  }
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>

実行結果

  • Menu1
  • Menu2
  • Menu3
  • Menu4
  • Menu5

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

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

初めてのJavaScript 第2版
作者:Shelley Powers | 価格:¥ 2,940

トラックバック(1)

2009年1月29日 17:11

jQueryによる表示、非表示切り替えWEBプログラム覚書

jQueryによるDiv要素の表示、非表示切り替え続きを読む

コメント

コメントする
Name
Email Address
URL
TIME LINE
2012
02.08

[Ubuntu11.10]Winows XPユーザーがUbuntuを使ってみて

Windows XPとUbuntuのデュアルブート環境にしてみておもったこと。

2012
02.03

[jQuery]closest()とparents()

今から16年前Netscapeブラウザのソースコードの公開方法の会議の中で、初めてオープンソースという言葉が使われた今日、 みなさんいかがお過ごしでしょうか。

今回の投稿はそれとは関係のないjQueryのparents()とclosest()が 似てたので何が違うのか試した時のメモです。

2012
02.01

[jQuery Mobile]初期化イベントメモ

jQuery Mobileは読み込まれてから

mobileinit -> pagebeforecreate -> pagecreate -> pageinit

の順番でイベントが発生する。

2012
02.01

[WordPress]管理画面のフッタのフィルタとアクション。

時間も時間なので、あまり使用頻度の高くない微妙なネタを。

会員制サイトなどで不特定多数の人にログインさせる場合、フッタのバージョン情報は隠しておきたかったり、 こじゃれたメッセージを表示したいときとか使うアクションとフィルタ。

2012
01.28

[WordPress] ブログの情報を取得する方法とノーキャッシュ疑惑

ブログのget_bloginfo()で取れないデータが必要な場合に使うもの。

2012
01.26

[jQuery Mobile]ダイアログ

jQuery Mobileにおけるダイアログの扱いはウインドウではなくページ。 なので通常のページと同様に扱える。ダイアログウインドウを出す。じゃなくダイアログページに遷移する。的な。

2012
01.25

[Ubuntu11.10]Ubuntuのインストール後の設定

インストール完了後の環境構築。PC起動時いちいちBIOSからブートドライブ選んで ブートするのかと思ってたら起動時にOS選択画面が出てくる。

すばらしいですね。

2012
01.24
2012
01.23

MinGW+Mintty+Git

MinGW+Mintty+Gitをやろうとして失敗に終わった。このエントリーには収穫できるものはありません。