LoginSignup
0
1

【備忘録】jQueryでアコーディオンメニュー

Posted at

はじめに

実装

1. とりあえずHTML/CSSで見た目を作る

  • この段階で.accordion__contentにはdisplay: none;を適応
    • 本家サイトでは後述のjQueryパートでjQuery側で操作していたが、ブラウザを再読み込みした際に一瞬コンテンツ部分が表示されるのが気になったので変更した。
<dl class="accordion">
  <dt class="accordion__title">メニュー1</dt>
  <dd class="accordion__content">
    メニュー1のコンテンツ内容
  </dd>

  <dt class="accordion__title">メニュー2</dt>
  <dd class="accordion__content">
    メニュー2のコンテンツ内容
  </dd>

  <dt class="accordion__title">メニュー3</dt>
  <dd class="accordion__content">
    メニュー3のコンテンツ内容
  </dd>

  <dt class="accordion__title">メニュー4</dt>
  <dd class="accordion__content">
    メニュー4のコンテンツ内容
  </dd>
</dl>
.accordion__title {
    text-align: center;
    padding: .5em;
    background-color: #6b90ff;
    border-bottom: 1px solid #fff;
    cursor: pointer;
    transition: all .3s;
}

.accordion__content {
    padding: 2em 1em;
    background-color: #d3deff;
    display: none;
}

2. jQueryで動きをつける

  • slideToggleメソッドを使って、コンテンツ部分の表示/非表示を切り替える。
$(function () {
  // CSS側で設定したので削除
  // $('.accordion__content').css("display", "none");
  $('.accordion__title').on('click', function() {
    $(this).next().slideToggle();
  });
});

実装後の疑問と調査

参考サイト

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1