Accordionを使ってみよう
Accordionを使うには先にprototype.jsライブラリとscript.aculo.usライブラリを読み込ませます。これは<script>
タグを使い以下のように記述します。読み込ませる順番を間違えると動作しないので注意してください。
<script type="text/javascript" src="js/prototype.js"></script>
<script type="text/javascript" src="js/effects.js"></script>
<script type="text/javascript" src="js/accordion.js"></script>
Accordionではアコーディオン処理を行う領域全体を<div>
タグで囲む必要があります。その<div>
タグ内にパネルタブ領域、コンテンツ領域を示すスタイルクラスを指定します。パネルタブはaccordion_toggle
クラス、内容はaccordion_content
クラスを指定します。
<div id="アコーディオン全体を示すID">
<h2 class="accordion_toggle">パネルタブ</h2>
<div class="accordion_content">内容</div>
:
:
</div>
パネルの数だけパネルタブと内容をアコーディオン全体を示す<div>
タグ内に列記します。これでHTMLタグの設定は終了です。これだけでは自動的にアコーディオン処理が行われないので以下のようにスクリプトを記述します。
window.onload = function(){
new accordion("#acc1");
}
accordion()のパラメータはアコーディオン全体を示すIDを指定します。Accordionでは異なるID名を指定することで、複数のアコーディオン処理を行えます。window.onload = function() { ~ }はページが読み込まれたら{}内で囲まれた部分の処理が行われます。
サンプル01ではID名acc1を持つ領域をアコーディオンとして機能するようにします。
サンプル01
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<title>アコーディオン サンプル</title>
<link rel="stylesheet" href="css/main.css" type="text/css">
<script type="text/javascript" src="js/prototype.js"></script>
<script type="text/javascript" src="js/effects.js"></script>
<script type="text/javascript" src="js/accordion.js"></script>
<script type="text/javascript"><!--
window.onload = function(){
new accordion("#acc1");
}
// --></script>
</head>
<body>
<h1>アコーディオン サンプル</h1>
<div id="acc1">
<h2 class="accordion_toggle">Accordionとは?</h2>
<div class="accordion_content">
Accordionは、その名のとおりアコーディオンのように開閉可能な領域を表示/非表示処理するライブラリです。<br>
他のライブラリではアコーディオン処理を行うものがありましたが、prototype.js系ではRicoがサポートしていた程度でした。
</div>
<h2 class="accordion_toggle">依存ライブラリ</h2>
<div class="accordion_content">
Accordionはprototype.jsとscript.aculo.usのエフェクトライブラリを利用しています。パネルのタブ(ヘッダー)をクリックすることで開閉を行うことができます。この開閉アニメーションにscript.aculo.usライブラリを使用しています。
</div>
<h2 class="accordion_toggle">特長</h2>
<div class="accordion_content">
Accordionは縦方向に開閉するだけでなく横方向に開閉できます。
</div>
</div>
</body>
</html>