Javascriptを使って親メニューとサブメニューを連動させる方法

このQ&Aのポイント
  • Javascriptを使用して、親メニューとサブメニューを連動させる方法を探しています。最初にページを開いた時は親メニュー1とそのサブメニューが表示されます。親メニューにマウスを合わせると、それぞれの親メニューに対応したサブメニューが表示されます。親メニューからマウスを外してもサブメニューが消えないようにしたいです。サブメニューはプルダウンメニューのように隣接して伸び縮みせず、独立した場所に表示させたいと考えています。
  • Javascriptを使用して親メニューとサブメニューを連動させる方法を探しています。ページ初回表示では親メニュー1とそのサブメニューが表示されています。親メニューにマウスを合わせると、それぞれの親メニューに対応したサブメニューが表示されます。親メニューからマウスを外してもサブメニューが消えないようにしたいと思っています。また、サブメニューはプルダウンメニューとは異なり、独立した場所に表示させたいです。
  • Javascriptを使用して親メニューとサブメニューを連動させる方法を探しています。ページ初回表示では親メニュー1とそのサブメニューが表示されています。親メニューにマウスを合わせると、それぞれの親メニューに対応したサブメニューが表示されます。親メニューからマウスを外してもサブメニューが消えないようにしたいです。サブメニューはプルダウンメニューのように隣接して伸び縮みせず、個別の場所に表示させたいです。
回答を見る
  • ベストアンサー

オンマウスで表示されるテキスト

下記のようなJavascriptを探しております。 お分かりの方がいらっしゃいましたらお教え下さい。 最初にページを開いた時は下記の状態で表示されます。 他の親メニューにマウスを合わせるとそれぞれのサブメニュー が表示されるのですが、親メニューからマウスを外してもサブ メニューが消えないようにできればと思います。 親メニューとサブメニューはプルダウンメニューのように隣接 して伸び縮みするのではなく、それぞれ独立した場所に表示さ せたいと考えております。 最初にページを開いたときの状態 ●親メニュー1     親メニュー1のサブメニュー1 ●親メニュー2     親メニュー1のサブメニュー2 ●親メニュー3     親メニュー1のサブメニュー3 ●親メニュー4     親メニュー1のサブメニュー4 親メニュー2にマウスを合わせたときの状態 ●親メニュー1     親メニュー2のサブメニュー1 ●親メニュー2     親メニュー2のサブメニュー2 ●親メニュー3     親メニュー2のサブメニュー3 ●親メニュー4     親メニュー2のサブメニュー4 分かりづらい説明で申し訳ありません。 補足説明いたしますので、よろしくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

離れたところというのが微妙ですが、こんな感じで? <style> .hide{ display:none; } </style> <script> function show(id){ var obj=document.getElementById(id); var n=obj.parentNode.firstChild; while(n){ if(n.nodeName=="UL") n.className="hide"; n=n.nextSibling; } obj.className=""; } </script> <ul> <li><a href="#" onMouseover="show('sub1')">親メニュー1</a></li> <li><a href="#" onMouseover="show('sub2')">親メニュー2</a></li> <li><a href="#" onMouseover="show('sub3')">親メニュー3</a></li> <li><a href="#" onMouseover="show('sub4')">親メニュー4</a></li> </ul> <hr> <div> <ul class="hide" id="sub1"> <li>親メニュー1のサブメニュー1 <li>親メニュー1のサブメニュー2 <li>親メニュー1のサブメニュー3 <li>親メニュー1のサブメニュー4 </ul> <ul class="hide" id="sub2"> <li>親メニュー2のサブメニュー1 <li>親メニュー2のサブメニュー2 <li>親メニュー2のサブメニュー3 <li>親メニュー2のサブメニュー4 </ul> <ul class="hide" id="sub3"> <li>親メニュー3のサブメニュー1 <li>親メニュー3のサブメニュー2 <li>親メニュー3のサブメニュー3 <li>親メニュー3のサブメニュー4 </ul> <ul class="hide" id="sub4"> <li>親メニュー4のサブメニュー1 <li>親メニュー4のサブメニュー2 <li>親メニュー4のサブメニュー3 <li>親メニュー4のサブメニュー4 </ul> </div>

patsaysnow
質問者

お礼

まさにこれです! ありがとうございます。 サイトを2カラムにして左に親メニューを置き、右側にリスト形式にして サブメニューを表示させたかったのですが、説明が悪く申し訳ありません。 本当にありがとうございました。

関連するQ&A

  • オンマウスで表示されるテキスト

    先ほどhttp://okwave.jp/qa4091921.htmlで質問させて頂いた者です。 下記のソースコードをお教え頂いたのですが、初めてページを開いた 時に↓の部分がすでに表示されている状態にするには、どうしたらよ いのでしょうか? どうぞよろしくお願い致します。 ページを開いたときに表示していたい部分 -------------------------------------------- <ul class="hide" id="sub1"> <li>親メニュー1のサブメニュー1 <li>親メニュー1のサブメニュー2 <li>親メニュー1のサブメニュー3 <li>親メニュー1のサブメニュー4 </ul> -------------------------------------------- 教えて頂いたソースコード <style> .hide{ display:none; } </style> <script> function show(id){ var obj=document.getElementById(id); var n=obj.parentNode.firstChild; while(n){ if(n.nodeName=="UL") n.className="hide"; n=n.nextSibling; } obj.className=""; } </script> <ul> <li><a href="#" onMouseover="show('sub1')">親メニュー1</a></li> <li><a href="#" onMouseover="show('sub2')">親メニュー2</a></li> <li><a href="#" onMouseover="show('sub3')">親メニュー3</a></li> <li><a href="#" onMouseover="show('sub4')">親メニュー4</a></li> </ul> <hr> <div> <ul class="hide" id="sub1"> <li>親メニュー1のサブメニュー1 <li>親メニュー1のサブメニュー2 <li>親メニュー1のサブメニュー3 <li>親メニュー1のサブメニュー4 </ul> <ul class="hide" id="sub2"> <li>親メニュー2のサブメニュー1 <li>親メニュー2のサブメニュー2 <li>親メニュー2のサブメニュー3 <li>親メニュー2のサブメニュー4 </ul> <ul class="hide" id="sub3"> <li>親メニュー3のサブメニュー1 <li>親メニュー3のサブメニュー2 <li>親メニュー3のサブメニュー3 <li>親メニュー3のサブメニュー4 </ul> <ul class="hide" id="sub4"> <li>親メニュー4のサブメニュー1 <li>親メニュー4のサブメニュー2 <li>親メニュー4のサブメニュー3 <li>親メニュー4のサブメニュー4 </ul> </div>

  • オンマウスで表示されるサブメニューについて

    よろしくお願い致します。 メインメニューにオンマウスすると、サブメニューが表示される ようにしたく、下記のようなコードを使用しています。 FirefoxやsSafariで起きる問題なのですが、サブメニューを表示 した状態で他のページに移動後、ブラウザのバックを使用しても 戻ってきたとき、移動前に表示していたサブメニューが開いたまま になっており、その後ずっと開いたままで非表示にならないことが あります。 色々試してみたのですが、うまく行かず困っています。 どうか解決策をお教え下さいますようお願い致します。 <html> <head> <script type="text/javascript"> <!-- function showHide(targetID) { if( document.getElementById(targetID)) { if( document.getElementById(targetID).style.display == "none") { document.getElementById(targetID).style.display = "block"; } else { document.getElementById(targetID).style.display = "none"; } } } window.onload = function() { document.getElementById(targetID).style.display = "none"; }; //--> </script> </head> <body> <a href="#" onMouseOver="showHide('subnavi');return false;">メインメニュー</a> <div id="subnavi" style="display:none;"> <a href="http://www.yahoo.co.jp/">サブメニュー</a> </div> </body> </html>

  • オンマウスでメニュー表示

    先ずは下記のURLをご覧下さい。 http://www.geocities.jp/hatenanet/test.html メニュー1と書かれたところにマウスを当てると、「test」と書かれたメニューテーブルが表示されます。 次にメニュー2と書かれたところにマウスを当てると、 その下に、「test」と書かれたテーブルが表示されます。 しかし、マウスをメニューと書かれたテーブルから外してしまいますと、最後に表示された「test」と書かれたテーブルが表示されたままになってしまいます。 これを消すには、最後にマウスを当てたメニューと書かれたテーブルをクリックしなくてはなりません。 メニューと書かれたテーブルからマウスを外せば、「test」と書かれたテーブルを消えるようにするにはどうしたらよいのでしょうか? リンク先のソースの内容では無理なのでしょうか? また、もっと違った方法があれば教えていただけると助かります。 どうぞ、よろしくお願いします。

  • jquery

    jqueryで縦型のプルダウンもしくはアコーディオンメニューを使おうかと思ってますが おすすめなものはありますか。 最初ページを開いた時は閉じた状態でクリックするとサブメニューが表示されるようにしたいです。 よろしくお願いします。

    • ベストアンサー
    • HTML
  • javascriptでなめらかなプルダウンメニューを

    javascriptを使ってFlashで作成したようななめらかな動きをするプルダウンメニューを 作成するのは出来るのでしょうか。 色々と調べてはいるのですが、下記サイトのサンプルのように クリックして直ぐにサブメニューが表示される、という方法は見つけられても 滑らかな動きを実現できる方法が見つかりません。 http://javascript.eweb-design.com/sample/s0701_1.html イメージとしては、 1.メニューをクリック 2.1秒後に上からズルズルっとサブメニューが表示される 3.メニューからマウスが離す 4.1秒後にズルズルっとサブメニューが上に戻る うまい表現方法が見つからず分りづらい質問となってしまいましたが アドバイスをいただけると助かります。宜しくお願いします。

  • プルダウンメニューからチェックボックスを表示したい

    php、javascript、mysqlを使用し、プルダウンで選択後、チェックボックスを表示させる仕組みを作りたいのですが、 どうすればよいのか分かりません。 どなたか力を貸して頂きたく思います。 例えば下記のようなTBLがあったとします。 ■TBL:oya  oyaコード  10  20  30 ■TBL:ko  oyaコード    koコード  10        1100  10        1200  10        1300  20        2100  20        2200  30        3100 TBL 「oya」 をプルダウンメニューにセット。 プルダウンメニューを選択する度にTBL 「ko」を呼び出し、同ページ内にチェックボックスとして表示させたいと考えています。 例) ・10が選択されたら  「1100」、「1200」、「1300」のチェックボックスを表示する プルダウンメニューへのセットは出来たのですが、プルダウン選択後の「ko」を呼び出す箇所が分かりません。 php Mysql javascript で実現したいと考えております。 サンプルページでもいいですので、何かありましたら教えて下さい。 お分かりになる方よろしくお願いいたします。

  • 表示がおかしくなった

    デスクトップ上でマウスの右ボタンを押すとサブメニューが表示されると思いますがそれが透明化してしまってて使いづらく困ってます。 マウスを下に下げると文字が現れてくるといった感じです。 またソフトのプルダウンメニューも同じ症状です。 現在使っているプラウザのFireFoxでは症状が起こりませんが解決策ありましたらご教授お願いします。

  • オンマウスで説明表示

    こんにちは 最近HPつくりをはじめまして、プロフィールを作ってるのですが内容が多いのでちょっとシンプルにやろうかと思いましてこういうことが思いついたのですが、こういうタグは探してもございませんでした。 ご存知の方いらっしゃいましたら教えて頂けませんでしょうか? やりたい事: メニュー1 メニュー2 メニュー3 とメニューがあるとすると メニュー1,2,3の説明をメニューのボタンに上にマウスを乗せるとセル(同一セル)の中に表示させたいです。 皆様の知識お貸し下さい。 宜しくお願い致します。

    • ベストアンサー
    • HTML
  • selectボックスのプルダウンメニューを上方向へ表示する方法

    すみません、どなたか教えて下さい。 selectボックスのプルダウンメニューを上方向へ表示することは可能でしょうか? ハンディーターミナル用に開発しているのですが、ページ下の方にあるプルダウンを選択すると1度ページ移動?するため、プルダウンのメニューが表示されず、2度選択しないといけません。 JavaScriptで対応可能でしょうか?それとも何か別の対策があれば教えて下さい、よろしくお願いします。

  • JavaScriptのプルダウンメニューとFLASHの重ね順

    ページのメインメニューをJavaScriptで作成したプルダウンメニューにして、ページの上端に配置しました。そしてそのすぐ下にFLASHムービーを配置したんです。 で、実際にページを表示してみたところ、メニューボタンにマウスアップして出てきたプルダウンメニューがFLASHムービーの下に隠れてしまったのです。 これではメニューが選択できないです。。。 FLASHとの重ね順を設定することってできるんでしょうか?

    • ベストアンサー
    • CSS

専門家に質問してみよう