![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
質問です。
以下の例1のような左右に分かれたページで、「サービスガイド」をクリックすると、その下のメニューが下に移動して、その間にサブメニューが表示され、さらにマウスが移動したら、そのサブメニューが閉じて、元に戻るようなスクリプトを探しています。そのようなスクリプトってないでしょうか?
ご存知の方、よろしくお願いいたします。
例1 http://www.starcat.ne.jp/mediacat/
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_02.png?5a7ff87)
No.1ベストアンサー
- 回答日時:
ちょっと作ってみました。
こういうものでは、いかがでしょうか。<html>
<head>
<title></title>
<script type="text/javascript"><!--
var HD= new Array();
function showdown(tgt){//サブメニューの表示調整
if (document.getElementById){
tar=document.getElementById(tgt);
if(tar.style.display=="block"){//サブメニューが表示されている時は隠す
tar.style.display="none"
}
else {//サブメニューが表示されていなければ、表示させる
tar.style.display="block";
}
}
}
function hideaway(tgt){// サブメニューからポインタが離れた時の処理
if (document.getElementById){
HD[tgt]=setTimeout('document.getElementById("'+tgt+'").style.display="none"',2000);
// サブメニューからポインタが離れたら、2秒後に隠す
}
}
function keepit(tgt){//ポインタがメニューの上に戻った時の処理
if (HD[tgt]){
clearTimeout(HD[tgt]);
// サブメニューを2秒後に隠す処理を停止
}
}
//--></script>
</head>
<body>
<div>
<p onMouseout="hideaway('subm1')" onMouseover="keepit('subm1')">
<a href="#" onClick="showdown('subm1'); return false;">メニュー1</a>
<span id="subm1" style="display: none;">
<a href="#">サブメニュー1-1</a><br>
<a href="#">サブメニュー1-2</a>
</span>
</p>
<p onMouseout="hideaway('subm2')" onMouseover="keepit('subm2')">
<a href="#" onClick="showdown('subm2'); return false;">メニュー2</a>
<span id="subm2" style="display: none;">
<a href="#">サブメニュー2-1</a><br>
<a href="#">サブメニュー2-2</a>
</span>
</p>
<p onMouseout="hideaway('subm3')" onMouseover="keepit('subm3')">
<a href="#" onClick="showdown('subm3'); return false;">メニュー3</a>
<span id="subm3" style="display: none;">
<a href="#">サブメニュー3-1</a><br>
<a href="#">サブメニュー3-2</a>
</span>
</p>
</div>
</body>
</html>
サブメニューについては、ここではspan要素に入れて、それをdisplay:none;で隠してあります。 この要素には、必ずidを設定する必要があります。
メニューの方は、a要素でクリックするとサブメニューを表示させるようにしてあります。
これらのメニューをまとめてp要素に入れて、このp要素からマウスが離れたら、サブメニューが2秒後に隠れるように仕掛け、またこのp要素の上にポインタが戻ってきた時にはサブメニューを隠す処理を破棄するようにしてあります。
スクリプトにも説明を入れましたが、それぞれの関数は、
「showdown('表示するspan要素のID')」:指定のサブメニューを表示させる
「hideaway('隠すspan要素のID')」:指定のサブメニューを隠す
「keepit('表示させ続けるspan要素のID')」:指定のサブメニューを隠す処理を破棄する
このような処理をまとめてあります。
この他の点については、JavaScriptの解説書や解説サイトなどで確認してみてください。
とりあえず、WinMe上のIE6、Netscape7.1で動作を確認してあります。 Netscape4.xx以前などでは動作しないかもしれません。
参考になれば幸いです。
この回答への補足
早速の解答ありがとうございます。
もしよろしければ、追加で教えていただきたいのですが、このスクリプトのリンクの部分は、画像に変更しても問題なく動作しますでしょうか?通常通り<img src= ・・・・・・>のタグを挿入すればOKですか?もし、何らかのスクリプトが必要ならば、教えてください。よろしくお願いいたします。
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_02.png?5a7ff87)
No.2
- 回答日時:
補足読みました。
前掲のソースの、サブメニューを括っているspan要素の中は、通常のHTMLと同じように記述することができます。 ですので、リンクのテキスト表示を画像に変えたい場合、あるいはリンク自体をそのまま画像とそっくり置き換えたい場合などは、補足で書かれているように、img要素をテキストやリンクの代わりに入れれば良いでしょう。 それでスクリプトの動作が阻害される事は、ないと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- gooブログ ブログの記事を書きだしのみに表示したい 1 2022/06/25 19:11
- ノートパソコン Onlineエクセルで右クリックが使えない 1 2023/07/01 22:07
- JavaScript [Java] Edgeでのアドレスバー非表示について 3 2022/04/20 17:51
- デスクトップパソコン PCでファイルを右ドラッグして出てくるメニューの編集方法を教えて下さい 2 2023/01/17 13:31
- その他(IT・Webサービス) メニューについて 3 2022/07/12 16:06
- その他(パソコン・周辺機器) 2つのPCを行き来する 2 2022/06/15 01:59
- Windows 10 Windows10からWindows8.1へ戻す 3 2022/03/23 08:03
- その他(ソフトウェア) IrfanView で画像のスクロール?できますか 1 2022/08/31 13:57
- Windows 8 動画の再生とタイトルの変更方法を教えてください。 3 2022/08/01 14:51
- Visual Basic(VBA) エクセルマクロでアニメを作る方法を教えてください。 1 2023/02/07 14:27
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
[急ぎ] videoタグで埋め込んだm...
-
IFRAMEの表示/非表示を切り替え...
-
createElementで作成した要素を...
-
ラジオボタンの切替で表示する...
-
jQueryでクリックされた要素のi...
-
背景色を一定時間ごとにランダ...
-
MAX関数を使ってからLEFT JOIN...
-
JSで動的にリンクを作成
-
CSSで指定したwidthをマウスで...
-
removeEventListenerについて
-
getElementByIdの戻り値がnull...
-
クリックで特定のdiv要素が表示...
-
背景色を透明化
-
指定字数以降隠す
-
innerTextで文字を変えたいので...
-
表示・非表示のスクリプトで、...
-
パララックスが出来ない。
-
javascriptでオブジェクトの重...
-
多次元配列を連想配列へ変換したい
-
ページの一部を隠したり開いた...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
MAX関数を使ってからLEFT JOIN...
-
javascriptテキストBOX色を元に...
-
読み込んだQRコードをフォーム...
-
createElementで作成した要素を...
-
removeEventListenerについて
-
クリックで色変更後に既に変更...
-
iframe内のリンクが飛ばないの...
-
[急ぎ] videoタグで埋め込んだm...
-
背景色を透明化
-
console.log結果をhtmlで表示し...
-
表示・非表示のスクリプトで、...
-
getElementByIdの戻り値がnull...
-
removeAttribute()メソッドで削...
-
テキストエリア内の一部の文字...
-
タブで開いてさらにタブ内をア...
-
IFRAMEの表示/非表示を切り替え...
-
変数内容をHTML内で表示する方法
-
HTMLタグに複数のクラスを設定...
-
jQueryのアコーディオンメニュ...
-
取得した要素がインライン要素...
おすすめ情報