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");
	});

});