折りたたみメニューを「Accordion」で実現

Blog等でエントリーが増えてくると、メニューが縦にどんどん伸びてきて嫌なので
こちらのような感じに折り畳めるようにできるAjaxライブラリを探してみました。
探した、というよりmootoolsを使用したサイトだったので、MooToolsでできるかなーと思いまして。
ずばり、「Accordion」がそれでした。
紹介や使い方は、すでにいろんな方が紹介しています。

一応、にわとり並みの記憶力の自分のために、使い方をあえてメモ。

必要なもの

  • MooTools (Accordionに必要なライブラリ全部を含んだもの。Accordionにチェックを入れると自動的に他に必要なライブラリにチェックが入る)

サンプル

JavaScript
<script type="text/javascript">
	// MooTools + Accordion (折りたたみメニュー)
	window.onload = function() {
		var main = $$('.toggler');
		var sub = $$('.element');
		var menuAccordion = new Accordion(
		main, sub, {
			//ここにOptionsを記述
			alwaysHide: true
		}
		);
	}
</script>
HTML
<h2 class="toggler">Main 1</h2>
<ul class="element">
<li>Sub 1</li>
</ul>
<h2 class="toggler">Main 2</h2>
<ul class="element">
<li>Sub 2</li>
<li>Sub 2</li>
</ul>
<h2 class="toggler">Main 3</h2>
<ul class="element">
<li>Sub 3</li>
<li>Sub 3</li>
<li>Sub 3</li>
</ul>

Options

show
integer,ウインドウ読み込み時、あらかじめ開いていて表示される要素を指定(0〜)
display
integer,ウインドウ読み込み時、開いて表示される要素を指定(0〜)
fixedHeight
integer,開いたときの最大の高さ(px)
opacity
boolean,開閉時、要素の表示を透明度の変化でフェードイン/フェードアウトさせるか否か
alwaysHide
boolean,クリックで開いた後、もう一度その要素をクリックして閉じるようにするか否か
duration
integer,開閉スピード(ミリ秒)

他は未調査 っつーかよくわかりません。笑

補足

  • JavaScriptはwindow.onloadではなく、htmlコードのbody内で、一番最後に読み込んだりコード記述しても動きます。
  • HTMLは、クリックで開閉の動きをさせる要素と、開閉の動きで表示されたり消えたりする要素は、htmlに記述されている順番に1つずつ対になります。(指定の要素を順に配列に入れて同じindex同士を対にする処理をしているのかな)
    対がずれたり、対にならなかった要素があっても動作はしますが、ユーザビリティ的にNGかも。こんな感じです。