
アコーディオンメニューとは
選択した項目が広がって詳細な内容を表示する形式のメニューのこと。
jQuery全盛期にはslideToggle()を使用して作成しているWebサイトが多く存在した。
$('dt').on('click', function() {
$('dd').slideToggle();
});
slideToggle()を使用したアコーディオンメニューのサンプル
jQueryを使用せずにアコーディオンメニュー
2014頃になるとCSSアニメーションを使用したWebサイトが増えてきて、アコーディオンメニューもjQueryを使用せずJavaScript+CSSが増えてきた。
jQueryなしで動作するので現在はこの手法がよく利用される。
dt, dd {
cursor: pointer;
padding: 10px;
border: 1px solid #000;
}
dt {
border-bottom: none;
}
dd {
overflow: hidden;
margin: 0;
transition: 0.3s all;
}
dd:not(.open) {
height: 0;
padding: 0 10px;
}
var dt = document.querySelector('dt')
var dd = document.querySelector('dd')
dt.addEventListener('click', () => {
dd.classList.toggle('open')
})
HTMLで作成したアコーディオンメニュー
最近ではGitHub上でHTMLのdetailsだけで作成したアコーディオンメニューを見かけることが多い。
HTMLだけなのでアニメーションにはならないがJavaScriptやCSSが不要なのでGitHubなどのMarkdownの表示などで見かける。
※IEとEdgeでは使用できないので、絶対に表示させたくない場合は注意が必要。
<details> <summary>toggle</summary> <div>Hello world!</div> </details>

