jquery アコーディオン 多階層

jQueryで多階層アコーディオンを実装する方法

jQueryで多階層アコーディオンを実装する方法

この記事では、jQueryを使用して多階層アコーディオンメニューを作成する方法を解説します。初心者の方でも理解しやすいように、コード例を交えながら詳しく説明していきます。

1. HTMLの構造

まずは、アコーディオンメニューのHTML構造を作成します。

  • <ul><li>要素を使って、階層構造を表現します。
  • 各項目の見出しには<h3>タグなどを使い、クリック時に展開/縮小できるようにします。
  • 各項目の内容は<div>タグなどで囲み、初期状態では非表示にします。

コード例:


<ul class="accordion">
  <li>
    <h3><span>第一階層 1</span></h3>
    <div>
      <ul>
        <li>
          <h4><span>第二階層 1-1</span></h4>
          <div>
            <p>第二階層 1-1 のコンテンツ</p>
          </div>
        </li>
        <li>
          <h4><span>第二階層 1-2</span></h4>
          <div>
            <p>第二階層 1-2 のコンテンツ</p>
          </div>
        </li>
      </ul>
    </div>
  </li>
  <li>
    <h3><span>第一階層 2</span></h3>
    <div>
      <p>第一階層 2 のコンテンツ</p>
    </div>
  </li>
</ul>

2. CSSでのスタイル設定

HTML構造を元に、CSSでアコーディオンメニューの見た目を整えます。

  • 初期状態では、各項目の内容は非表示にします。
  • クリックされた見出しにアクティブなスタイルを適用します。

コード例:


.accordion li div {
  display: none;
}

.accordion li.active > div {
  display: block;
}

.accordion h3, .accordion h4 {
  cursor: pointer;
}

3. jQueryを使った動的な処理

jQueryを使って、クリックイベントを各項目の見出しに設定します。

  • クリックされた見出しに対応する内容を表示/非表示にします。
  • slideToggle()メソッドなどを使用すると、アニメーション効果を加えることができます。

コード例:


$(function() {
  $('.accordion h3, .accordion h4').on('click', function() {
    $(this).parent().toggleClass('active');
    $(this).next().slideToggle();
  });
});

まとめ

上記のHTML、CSS、jQueryのコードを組み合わせることで、多階層アコーディオンメニューを実装することができます。必要に応じて、デザインや機能をカスタマイズすることができます。

参考資料

よくある質問

質問 回答
アコーディオンメニューの開き方を、クリックではなくホバーに変更できますか? はい、jQueryのhover()メソッドを使用することで変更可能です。
初期状態で、特定の項目を開いた状態にするにはどうすれば良いですか? HTMLで該当する<li>タグにactiveクラスを追加しておきます。
アコーディオンメニューのアニメーションの速度を調整できますか? はい、slideToggle()メソッドに引数を渡すことで調整可能です。例:slideToggle("slow")

その他の参考記事:jquery アコーディオン