- ベストアンサー
ドロップダウンメニューのドロップ元画像の選択状態
- ドロップダウンメニューのドロップ元画像の選択状態についての質問です。メニューがドロップされた際に、ドロップ元の画像の選択状態が解除されてしまいます。制御方法や参考になるページについて教えてください。
- ドロップダウンメニューのドロップ元画像の選択状態についての質問です。ドロップされたメニューにカーソルがあたっても、ドロップ元の画像やテキストをオーバーした状態に保ちたいです。このような制御方法を教えてください。
- ドロップダウンメニューのドロップ元画像の選択状態についての質問です。ドロップされたメニューにカーソルがあたると、ドロップ元の画像の選択状態が解除されてしまいます。この問題を解決するための制御方法について教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
・ DropDownMenu.js を次のように変更してください。 ------------------------------------------------------------ /* This script and many more are available free online at The JavaScript Source!! http://javascript.internet.com Created by: Konstantin Jagello | http://javascript-array.com/ */ var TimeOut = 300; var currentLayer = null; var currentitem = null; var currentLayerNum = 0; var noClose = 0; var closeTimer = null; var mmenu; function mopen(n) { var l = document.getElementById("menu" + n); var mm = document.getElementById("mmenu" + n); mmenu = mm; if(l) { mcancelclosetime(); l.style.visibility='visible'; if(currentLayer && (currentLayerNum != n)) currentLayer.style.visibility='hidden'; currentLayer = l; currentitem = mm; currentLayerNum = n; } else if(currentLayer) { currentLayer.style.visibility='hidden'; currentLayerNum = 0; currentitem = null; currentLayer = null; } } function mclosetime() { closeTimer = window.setTimeout(mclose, TimeOut); mmenu.style.backgroundColor = "#5970B2"; } function mcancelclosetime() { if(closeTimer) { window.clearTimeout(closeTimer); closeTimer = null; } mmenu.style.backgroundColor = "#49A3FF"; } function mclose() { if(currentLayer && noClose!=1) { currentLayer.style.visibility='hidden'; currentLayerNum = 0; currentLayer = null; currentitem = null; } else { noClose = 0; } currentLayer = null; currentitem = null; } document.onclick = mclose; ------------------------------------------------------------ 変更下箇所は、以下の通りです。 1. var mmenu; 2. function mclosetime() { closeTimer = window.setTimeout(mclose, TimeOut); mmenu.style.backgroundColor = "#5970B2"; } function mcancelclosetime() { if(closeTimer) { window.clearTimeout(closeTimer); closeTimer = null; } mmenu.style.backgroundColor = "#49A3FF"; }
その他の回答 (1)
- auty
- ベストアンサー率58% (284/486)
・ 直感的で試していませんが考え方として、テキストの場合 ------------------------------------------------------------ 1. mcancelclosetime() の中で ドロップ元のテキストのbackgroundを #dd li a.menu:hover { background: #49A3FF; } と同じにする。 2. mclosetime() の中で元に戻す。 background: #5970B2; ------------------------------------------------------------ としてみてはどうでしょうか。
補足
参考ありがとうございます。 具体的にはどのように記載してみればよろしいでしょうか? CSSはそこそこわかるのですが、javaスクリプトの記載方法が わからないです。 お手数ですがお教えいただけますと幸いです。
お礼
ご丁寧にありがとうございます。 参考になりました!