jQueryで動くアコーディオンの作り方【コピペで1分】
jQueryで動くアコーディオンのDEMO
DEMOページ
jQueryで動くアコーディオンの作り方解説
jQueryを使用してアコーディオンの見出しとコンテンツが連動して動くように実装。
- 1.扱いやすくするためにHTMLは親要素と見出し、子要素のリスト(dl・dt・dd)要素で構成する
- 2.コンテンツ要素にdisplay:none;をかけて非表示にしておく
- 3.cssの擬似要素で開閉の「+」「-」を設定。cursor:pointerを見出しに設定してクリックが分かるように指定
- 4.jQueryを使用して見出しをクリックされたら、紐づいたコンテンツがdiplay:blockになるように設定
- 5.正しく動作していれば完成です。
HTML記述
HTMLをbody内の表示位置に記載します。
<dl class="accordion">
<dt class="accordion-title">Q1.見出し1</dt>
<dd class="accordion-content">A.コンテンツ1</dd>
<dt class="accordion-title">Q2.見出し2</dt>
<dd class="accordion-content">A.コンテンツ2</dd>
<!-- dt/ddをコピーしたらアコーディオンを追加できます -->
</dl>
css記述
cssを<style>~</style>または自作cssの中に記述します。
<style>
/* リストのスタイルをリセット */
dl,dt,dd{
margin: 0;
list-style: none;
}
/* アコーディオン共通指定 */
.accordion-title,
.accordion-content {
padding: 18px 20px 18px 40px;
border-bottom: 1px solid #fff;
position: relative;
}
/* アコーディオン見出し */
.accordion-title {
color: #fff;
background-color: rgb(80, 113, 191);
cursor: pointer;
}
.accordion-title::before {
content: '+';
position: absolute;
top: 50%;
right: 5%;
transform: translateY(-50%);
}
.accordion-title.open::before {
content: '-';
}
/* アコーディオンコンテンツ */
.accordion-content {
display: none;
background-color: rgb(218, 226, 240);
}
</style>
jQuery記述
jQueryCDN 最新版などは公式サイトをご確認ください。
<script src="https://code.jquery.com/jquery-3.7.0.min.js"></script>
jQueryを<script>~</script>または自作jsの中に記述します。
<script>
$(document).ready(function () {
// アコーディオンタイトルをクリックした際の動作
$('.accordion-title').click(function () {
// アコーディオンの開閉を切り替える
$(this).toggleClass('open').next('.accordion-content').slideToggle();
});
});
</script>
関連アニメーション