Q&A アコーディオン(jqery:クリックでクラス切り替え)
by interlife
HTML
<dl class="faq__wrap">
<dt class="faq__question open">クエスチョン</dt>
<dd class="faq__answer open">アンサー</dd>
</dl>
<dl class="faq-wrap">
<dt class="faq__question">クエスチョン</dt>
<dd class="faq__answer">アンサー</dd>
</dl>
SCSS
.faq__wrap {
margin: 0 auto 20px;
position: relative;
background: #fff;
}
.faq__question {
padding: 30px 100px 30px 30px;
cursor: pointer;
border-left: 44px solid #0097dd;
position: relative;
font-size: 18px;
font-weight: bold;
&:before,&:after {
content: "";
display: inline-block;
width: 20px;
height: 2px;
background-color: #000;
position: absolute;
right: 20px;
top: 50%;
transform: translateY(-50%);
transition: opacity 1s;
}
&:after {
transform: translateY(-50%) rotate(90deg);
transition: transform .5s;
}
&.open {
&:before { opacity: 0; }
&:after { transform: translateY(-50%) rotate(180deg); }
}
}
.faq__answer {
margin-inline-start: 0;
padding: 0 30px 30px;
border-left: 44px solid #0097dd;
display: none;
box-sizing: border-box;
&.open { display: block; }
ul { margin-top: 1.5em; }
}
JavaScript
$(function(){
$('.faq__wrap .faq__question').click(function(){
$(this).next('.faq__answer').stop(true, false).slideToggle(200);
$(this).toggleClass("open");
});
});