[JS覚書]Q&AページでJqueryのアコーディオン仕様を実装
量多めのQ&AページでJqueryのアコーディオン仕様を実装してみました。
前から目を付けていたのですが、ちゃんと実装したのは今回初めてかも。
実装自体は割と簡単なのですが、クリックしたら開くよ!と自然にわかるデザインにする方がメインな作業ですな。
仕様はこちらのページを参考にしました。JSの細かい説明と色々なバージョンも載せてくれてるとこがありがたい。
jQueryでの開閉式のアコーディオンの動きいろいろ | CSS Lecture
jQueryでの開閉式のアコーディンの動きいろいろのデモページ|CSS Lecture
[JS]タブ式メニューとアコーディオンをつかったサンプル | CSS Lecture
[JS]タブ式メニューとアコーディオンをつかったサンプルのデモページ|CSS Lecture
スクリプト部分
faqというスラッグを付けた固定ページという設定で条件分岐で挟んであります。
<?php if(is_page(faq)): ?> <script type="text/javascript" src="jquery.min.js"></script> <script type="text/javascript"> $(document).ready(function(){ $('.accordion_head').click(function() { $(this).next().slideToggle(); }).next().hide(); }); </script> <?php endif; ?>
slideToggle()の中に’slow’(遅い)、’nomal’(普通(指定なしと同じ))、’fast’(早い)を入れるとスライドスピードも変えられます。
<p>※クリックして回答をご覧下さい。</p> <div class="ac"> <h4 class="accordion_head">ここに質問が入ります。</h4> <p>ここに解答が入ります。</p>
この場合pの中身に新たなタグは入れられないです。
CSS記述
div class=”ac”で囲っちゃって、pに一気にスタイル付けをしています。
div.entry h4.accordion_head { cursor:pointer; background-image:url(images/custom/md_h4_ac.png); background-repeat:no-repeat; color:#066; padding-left:40px; border:none; margin-bottom: 5px; } div.ac p { background:url(images/custom/back_p_ac.png); background-repeat:no-repeat; padding-left:40px; font-size:14px; min-height:30px; margin-bottom:30px; }
以下のページがデザイン的には参考になりました。
Javascriptによるアコーディオンのサンプルサイト5つ | Webデザインのレシピ
CSS3とhtml5仕様
今後の参考にCSS3とhtml5仕様のものです。
デザインも美しい、アニメーションで開閉するアコーディオンを実装するチュートリアル | コリス
カッコよくデザインされたピュアCSS3なアコーディオン実装デモ:phpspot開発日誌
おまけ:内容divバージョンのcss(20121101追記)
スライドで開く内容が多めのバージョン。div.conventionとしました。
div.entry div.ac h2.accordion_head { background-image:url(images/custom/ac_h2_back.gif); cursor:pointer; color:#036; border:none; margin-bottom: 5px; padding-left:30px; } div.entry div.ac h2.accordion_head:hover { background-image:url(images/custom/ac_h2_back_on.gif); cursor:pointer; } div.ac div.convention { margin-bottom:30px; }
ディスカッション
ピンバック & トラックバック一覧
[…] [JS覚書]Q&AページでJqueryのアコーディオン仕様を実装 – ponnao-clip […]