【jQuery】アコーデオンメニューのサンプルソース

サンプル

タイトルをクリックするとアコーデオンでメニューが開閉する割とシンプルなソースのサンプル。

.menu dl dt { cursor: pointer; } .menu dl dt, .menu dl dd { border-bottom: #CCC 1px solid; position: relative; } .menu dl dd { border: none; display: none; margin: 0 !important; } .menu dl.open dt::after { content: “ー”; } .menu dl dt::after { content: “+”; position: absolute; right: 0; top: 50%; transform: translateY(-50%); }

$(".menu dt").on(“click”,function(){ $(this).parent().toggleClass(“open”); $(this).next().slideToggle(); });

説明①
内容①


説明②
内容②


説明③
内容③

HTML

<nav class="menu">
  <dl>
    <dt>説明①</dt>
    <dd>内容①</dd>
  </dl>
  <dl>
    <dt>説明②</dt>
    <dd>内容②</dd>
  </dl>
  <dl>
    <dt>説明③</dt>
    <dd>内容③</dd>
  </dl>
</nav>
<script
  src="https://code.jquery.com/jquery-3.6.1.min.js"
  integrity="sha256-o88AwQnZB+VDvE9tvIXrMQaPlFFSUTR+nldQm1LuPXQ="
  crossorigin="anonymous"></script>

CSS

.menu dl dt {
    cursor: pointer;
}
.menu dl dt, .menu dl dd {
    border-bottom: #CCC 1px solid;
    position: relative;
}
.menu dl dd {
    border: none;
    display: none;
    margin: 0;
}
.menu dl.open dt::after {
    content: "ー";
}
.menu dl dt::after {
    content: "+";
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
}

Javascript(jQuery)

$(".menu dt").on("click",function(){
  $(this).parent().toggleClass("open");
  $(this).next().slideToggle();
});

Bootstrapで実現したいとき

jQueryを使わず、Bootstrapでアコーデオンメニューを作成することも可能です。

Vue.jsで実現したいとき

Hugo で構築されています。
テーマ Stack は Jimmy によって設計されています。