jQuery droppy
jQueryは、JavaScriptのライブラリで、とても便利なものである。本体は公式サイトから入手し、headr部分に「<script type="text/javascript" src="jquery-min.js"></script>」な感じで記述する。他には、Google Libraries APIを利用してリンクを張るって方法もある。
で、jQuery droppy。jQueryを使って簡単に見た目もいいドロップダウンメニューを組み込む。droppyはこちらから入手。この時点での最新バージョンは0.1.2。ダウンロードしたdroppy-0.1.2.zipを解凍すると、いろいろあるので一通り目を通して…、実際使うのは「jquery.droppy.js」「droppy.css」の二つである。
記述方法
jQuery droppy
「jquery.droppy.js」は、jquery本体と同じようにhead部分に記述する。head部分で、droppyを呼び出すコードを書く↓。
この時の「speed:300」の値を変えることで動きのスピードを調整できる。このコードは「jquery.droppy.js」の最後に追記しても問題なさげ。
<script type='text/javascript'>
$(function() {
$('#nav').droppy({speed:300});
});
</script>
次に、htmlサンプル。id名に注意、かぶっていなければそのまま使って無問題。
<ul id='nav'>
<li><a href='#'>Top level 1</a></li>
<li><a href='#'>Top level 2</a>
<ul>
<li><a href='#'>Sub 2 - 1</a></li>
<li><a href='#'>Sub 2 - 2</a>
<ul>
<li><a href='#'>Sub 2 - 2 - 1</a>
<ul>
<li><a href='#'>Sub 2 - 2 - 1 - 1</a></li>
<li><a href='#'>Sub 2 - 2 - 1 - 2</a></li>
<li><a href='#'>Sub 2 - 2 - 1 - 3</a></li>
<li><a href='#'>Sub 2 - 2 - 1 - 4</a></li>
</ul>
</li>
<li><a href='#'>Sub 2 - 2 - 2</a></li>
<li><a href='#'>Sub 2 - 2 - 3</a>
<ul>
<li><a href='#'>Sub 2 - 2 - 3 - 1</a></li>
<li><a href='#'>Sub 2 - 2 - 3 - 2</a></li>
<li><a href='#'>Sub 2 - 2 - 3 - 3</a></li>
<li><a href='#'>Sub 2 - 2 - 3 - 4</a></li>
</ul>
</li>
</ul>
</li>
<li><a href='#'>Sub 2 - 3</a></li>
</ul>
</li>
</ul>
cssサンプル、droppy.css。自身のWEBサイトに合うように変更する。
/* Basic code - don't modify */
#nav { display: block; margin: 0; padding: 0; position: relative; }
#nav li { display: block; list-style: none; margin: 0; padding: 0; float: left; position: relative; }
#nav a { display: block; }
#nav ul { display: none; position: absolute; left: 0; margin: 0; padding: 0; }
* html #nav ul { line-height: 0; } /* IE6 "fix" */
#nav ul a { zoom: 1; } /* IE6/7 fix */
#nav ul li { float: none; }
#nav ul ul { top: 0; }
/* Essentials - configure this */
#nav ul { width: 130px; }
#nav ul ul { left: 131px; }
/* Everything else is theming */
#nav { background-color: #30A8C3; height: 24px; }
#nav *:hover { background-color: none; }
#nav a { border-right: 1px solid white; color: white; font-size: 12px; padding: 6px; line-height: 1; }
#nav li.hover a { background-color: #5E5A5A; }
#nav ul { top: 25px; }
#nav ul li a { background-color: #5E5A5A; }
#nav ul a.hover { background-color: #30A8C3; }
#nav ul a { border-bottom: 1px solid white; border-right: none; opacity: 0.9; filter: alpha(opacity=90); }
/* #nav ul a { border-bottom: none; } - I also needed this for IE6/7 */