• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:JavaScript 折りたたみ式のメニュー)

JavaScriptで折りたたみ式のメニューを実装する方法

このQ&Aのポイント
  • JavaScriptを使用して、マウスオーバーによってメニューの小項目を表示する折りたたみ式のメニューを作成する方法をご紹介します。
  • このメニューは、縦方向に展開されていくタイプではなく、マウスオーバーすることで大項目の横に小項目が表示される仕組みです。
  • また、このメニューは「ツリーメニュー」「ドロップダウンメニュー」とも呼ばれています。

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

  • ベストアンサー
回答No.1

とりあえず、単純なものであれば ヘッダー部に <script language="JavaScript"> <!-- function change(Name){ tMenu=(document.all)?document.all(Name).style:document.getElementById(Name).style; if(tMenu.display == "none" ){ tMenu.display = "block"; } else { tMenu.display = "none"; } } //--> </script> ボディー部に <TABLE> <TR> <TD VALIGN=TOP onMouseOver="change('aaa')" onMouseOut="change('aaa')"> aaa </TD> </TR> <TR> <TD id="aaa" style="display:none" onMouseOver="change('aaa')" onMouseOut="change('aaa')"> <A HREF="#">ああああ</A><BR> <A HREF="#">いいいい</A><BR> <A HREF="#">うううう</A><BR> <A HREF="#">ええええ</A><BR> <A HREF="#">おおおお</A> </TD> </TR> <TR> <TD VALIGN=TOP onMouseOver="change('bbb')" onMouseOut="change('bbb')"> bbb </TD> </TR> <TR> <TD id="bbb" style="display:none" onMouseOver="change('bbb')" onMouseOut="change('bbb')"> <A HREF="#">AAAA</A><BR> <A HREF="#">BBBB</A><BR> <A HREF="#">CCCC</A><BR> <A HREF="#">DDDD</A><BR> <A HREF="#">EEEE</A> </TD> </TR> </TABLE> という感じにすれば出来るのですが メニューの折り畳むタイミングをどうするかという 課題が残ります。 というのは、右に展開するタイプだと大項目の位置が 固定なので、マウスを重ねるのが簡単なんですが 下に展開するタイプだと展開される毎に大項目の位置が 動くので、連続で大項目を展開させようとすると 非常に難しくなります。 #展開したものを展開したままにするなら問題ないですが #折り畳まないと展開する意味はないですよね? という事で、縦に展開しようとするとどうしても マウスを重ねた時という条件では難しくて、 展開と折り畳みのタイミングをクリックなどで 固定しないといけなくなります。

RH01
質問者

お礼

早速アドバイスありがとうございます 座標を取るのが難しいから無理かなとは 思っていたのですが、私の知識が少ないので 実際は出来たりするのかなと思っていたので とても助かりました! クリックで動かすようにしようと思います ありがとうございました

関連するQ&A

専門家に質問してみよう