■ 方法
【1】CSS/JavaScriptを使用する
=> style="display: none" を使用して、切り替える
【2】jQueryを使用する
[1] hide/show を使用する [2] toggle / fadeToggle / slideToggle を使用する
■ 注意
「style="display: none"」と「visibilityプロパティ」の違い
[1] style="display: none" を使用して、切り替える => 描画領域自体が削除される [2] visibilityプロパティを使用して、切り替える => 描画領域はそのままで非表示
非表示した際のブラウザ上の動作について
* ラジオボタンなどの一部を非表示にした状態で、マウスではなく、矢印キーなどでカーソル移動した際に 全てを表示した動きとは異なる挙動になる。 => 非表示だけでなく、非活性にすれば回避できる非活性については、以下の関連記事を参照のこと。
http://blogs.yahoo.co.jp/dk521123/35752039.html
■ サンプル
【1】CSS/JavaScript
概要[1] getElementsByTagNameで、タグのオブジェクトを取得 [2] 取得したオブジェクトからclassNameで、クラス名を取得し、該当するタグを探す [3] 該当するタグを見つけたら、styleのdisplayに表示(block)・非表示(none)を切り替えるサンプルコード
//初期設定 function menuInit() { if(!document.getElementsByTagName) { // DOMをサポートしていなければ実行しないで抜ける return; } //HTML中の「div」タグを取得 var objs = document.getElementsByTagName("div"); for(var i = 0; i < objs.length; i++) { //クラスネーム「displayMenu」を探して非表示 if(objs[i].className == "displayMenu") { objs[i].style.display = "none"; } } } //表示・非表示切替関数 function switchDisplay(id) { if(!document.getElementsByTagName) { //DOMをサポートしていなければ実行しないで抜ける return; } //ツリーのオブジェクトを取得 var obj=document.getElementById(id); //表示・非表示切替処理 if(obj.style.display == "block") { obj.style.display = "none"; } else { obj.style.display = "block"; } return false; }
【2】jQuery
* fadeToggleでスイッチON/OFFを実装* 使用しているアイコンについては、以下の関連記事を参照のこと。
http://blogs.yahoo.co.jp/dk521123/35506135.html
<html> <head> <meta charset="UTF-8"> <script src="">https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"> <link rel="stylesheet" href="">https://maxcdn.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css"> <style type="text/css"> div.parent { border: black solid; overflow: auto; } .custom-switch { float:right; } .custom-switch-on { color: DarkOrange; } .custom-switch-off { color: SlateGray; } .custom-switch-on:hover { color: LightSkyBlue; cursor: pointer; } </style> </head> <body> <div class="parent"> <div id="power-switch" class="fa-stack fa-lg custom-switch custom-switch-on"> <i class="fa fa-circle fa-stack-2x"></i> <i class="fa fa-power-off fa-stack-1x fa-inverse"></i> </div> <div id="television"> <i class="fa fa-television fa-5x"></i> </div> </div> <script> $(function () { $("#power-switch").on("click", function(){ $(this).toggleClass("custom-switch-off"); $("#television").fadeToggle("slow"); }); }); </script> </body> </html>
参考資料
【1】CSS/JavaScriptを使用する
http://plusone.jpn.org/javascript/sample/acc/treemenu.html#treemenuhttp://allabout.co.jp/gm/gc/23973/
【2】jQueryを使用する
http://www.task-notes.com/entry/20150112/1420994026jQuery APIリファレンス
http://semooh.jp/jquery/api/effects/
* toggle
http://jump-up.info/jquery/jquery_toggle.html