チーズは内臓脂肪を減らすらしい ― 2006年06月05日 11時58分28秒
チーズで内臓脂肪を減らそう! (AllAbout)
メモメモ...∮(゚∇゚*)
ドロップダウンメニューのテスト ― 2006年06月05日 14時49分10秒
ドロップダウンメニューを実現する HTML のサンプルを書いてみた。ソースはリンク先を参照。
おんなじようなことをやっているサイトってのは結構あるんだけど、マウスがサブメニューから離れてもサブメニューが閉じてくれなかったり、変なルールでサブメニューが閉じるようになっていたりと、いまいち操作感がしっくりこないサイトが多いように思う。
今回書いてみたサンプルのポイントは以下の通り。
- メニューはリストを記述するタグ
<ul>と<li>を用いて記述している。メニューはメニューアイテムの階層的なリストだよ、という考え方だわね。 - メインメニューのアイテムにマウスカーソルが重なると、
onMouseOverイベントハンドラが自前のopenSubMenu関数を呼んで、指定した ID の要素ブロックがサブメニューとして表示される。このとき表示されるブロックは、メインメニューのアイテムである<li>要素の配下にある<ul>要素であるため、このブロック上にマウスカーソルが重なっている間は、メインメニューアイテム (の配下の要素) 上にマウスカーソルが重なっているのと同じということになり、メインメニューアイテムのonMouseOutイベントは発生しない。マウスカーソルがメインメニューアイテムやサブメニューブロックのいずれからも離れると、メインメニューアイテムのonMouseOutイベントハンドラが呼ばれ、それが更に自前のcloseSubMenu関数を呼んで、指定した ID の要素ブロックであるサブメニューが非表示となる。 - メインメニューアイテム
<li>要素のスタイルにposition: relative;を、サブメニューブロック<ul>要素のスタイルにposition: absolute;を指定することによって、サブメニューの表示位置を、メインメニューアイテムの表示位置からの相対位置として指定することができる。
意外とシンプルに、あっさり作ることができた。Firefox、IE、Opera にて表示確認。IE 6.0 だと li:hover によるハイライト表示ができない (IE 7.0β ならできるが) のが微妙だけど、動作としては問題ないんじゃないかなと。





最近のコメント