この記事は2年以上前に書かれたものです。
情報が古い可能性があります。
情報が古い可能性があります。
デモページ
IE以外で見てください
配布元
jQuery Acordionって書いちゃったけど正式なプラグイン名は acordion みたいです。ごめんなさい。
プラグインについて
- アコーディオンを実装してくれる
- 閉会時にスクロール位置を自動調整してくれる
- 開いている要素のタイトルにはCSSのクラス .currentTitle を付けてくれる
- 開いている要素の内容にはCSSのクラス .currentDetail を付けてくれる
実装ソースコード例
jQueryとプラグインの読み込み
<!-- jQurey --> <script src="http://code.jquery.com/jquery-1.9.1.min.js"></script> <script src="js/jq-acodon.js"></script>
jQueryとアコーディオンのプラグインをそれぞれ読み込みます。
アコーディオンの実装
<script> $(function() { $('#accordion dl').acodon( { 'header': 'dt' } ); }); </script>
アコーディオンの対象となる要素と、ヘッダーとなる要素を指定します。
HTML
<!doctype html> <html lang="ja"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no"> <title>jQuey Accordion Demo</title> <link rel="stylesheet" href="css/style.css"> </head> <body> <h1>jQuey Accordion Demo</h1> <!-- #accordion --> <div id="accordion"> <h2>いつタップするの?</h2> <dl> <!-- コンテンツ1 --> <dt>1. コンテンツ</dt> <dd> <a href="http://www.pakutaso.com/201325photo065post-2502.html" class="photo" title="いつやるの?進路指導する先生 大川竜弥"> <img src="img/001.jpg" width="500" alt="いつやるの?進路指導する先生 大川竜弥" /> <p>今でしょ!</p> </a> </dd> <!-- コンテンツ2 --> <dt>2. コンテンツ</dt> <dd> <a href="http://www.pakutaso.com/201325photo065post-2502.html" class="photo" title="いつやるの?進路指導する先生 大川竜弥"> <img src="img/001.jpg" width="500" alt="いつやるの?進路指導する先生 大川竜弥" /> <p>今でしょ!</p> </a> </dd> <!-- コンテンツ3 --> <dt>3. コンテンツ</dt> <dd> <a href="http://www.pakutaso.com/201325photo065post-2502.html" class="photo" title="いつやるの?進路指導する先生 大川竜弥"> <img src="img/001.jpg" width="500" alt="いつやるの?進路指導する先生 大川竜弥" /> <p>今でしょ!</p> </a> </dd> <!-- コンテンツ4 --> <dt>4. コンテンツ</dt> <dd> <a href="http://www.pakutaso.com/201325photo065post-2502.html" class="photo" title="いつやるの?進路指導する先生 大川竜弥"> <img src="img/001.jpg" width="500" alt="いつやるの?進路指導する先生 大川竜弥"/> <p>今でしょ!</p> </a> </dd> <!-- コンテンツ5 --> <dt>5. コンテンツ</dt> <dd> <a href="http://www.pakutaso.com/201325photo065post-2502.html" class="photo"> <img src="img/001.jpg" width="500" alt="今でしょ!"/> <p>今でしょ!</p> </a> </dd> <!-- コンテンツ6 --> <dt>6. コンテンツ</dt> <dd> <a href="http://www.pakutaso.com/201325photo065post-2502.html" class="photo"> <img src="img/001.jpg" width="500" alt="今でしょ!"/> <p>今でしょ!</p> </a> </dd> </dl> </div> <!-- /#accordion --> <ul> <li><a href="http://stackstock.net/archives/2040/">プラグインページはこちら » STACKSTOCK</a></li> <li><a href="http://www.pakutaso.com/201325photo065post-2502.html">デモで使用している写真素材はこちら » PAKUTASO</a></li> </ul> <!-- jQurey --> <script src="//code.jquery.com/jquery-1.9.1.min.js"></script> <script src="js/jq-acodon.js"></script> <script> $(function() { $('#accordion dl').acodon( { 'header': 'dt' } ); }); </body> </html>
CSS
@charset "utf-8"; html, body { width: 100%; height: 100%; margin: 0; padding: 0; } body { box-sizing: border-box; padding: .5em; } h1 { margin: 10px; font-family: 'Helvetica Neue', Helvetica, sans-serif; font-size: 2em; } h2 { margin: 10px; font-size: 1em; font-weight: normal; } #accordion { width: 500px; } #accordion dl dd { position: relative; margin: 0; padding: 10px 0px; } #accordion dl dt.currentTitle { border-bottom: 1px solid #25282a; } #accordion dl dt { margin: 0; padding: 10px; border: 1px solid #25282a; border-bottom: none; box-shadow: 1px 1px 1px 0px rgba(255,255,255,0.4) inset; background: #983738; background: -webkit-gradient(linear, 0 0, 0 bottom, from(#ba4e4f), to(#983738)); background: -webkit-linear-gradient(#ba4e4f, #983738); background: -moz-linear-gradient(#ba4e4f, #983738); background: -ms-linear-gradient(#ba4e4f, #983738); background: -o-linear-gradient(#ba4e4f, #983738); background: linear-gradient(#ba4e4f, #983738); color: white; } #accordion dl dt:last-of-type { border-bottom: 1px solid #25282a; } #accordion dl dt:hover, #accordion dl dt:focus { background: #ba4e4f; background: -webkit-gradient(linear, 0 0, 0 bottom, from(#983738), to(#ba4e4f)); background: -webkit-linear-gradient(#983738, #ba4e4f); background: -moz-linear-gradient(#983738, #ba4e4f); background: -ms-linear-gradient(#983738, #ba4e4f); background: -o-linear-gradient(#983738, #ba4e4f); background: linear-gradient(#983738, #ba4e4f5); } .photo { color: #fff; font-weight: bold; font-size: 3em; text-decoration: none; -webkit-transition: color 300ms linear; /* Safari,Chrome */ -moz-transition: color 300ms linear; /* Firefox */ -o-transition: color 300ms linear; /* Opera */ transition: color 300ms linear; /* Other */ } .photo:hover { color: #f55; } .photo p { position: absolute; top: 50px; margin-left: 10px; }
おまけ
デモのキャプチャです。