JSFiddle - React, Tailwind, and code Playground
by evon0306
HTML
<div class="QA">
<div class="Q">
<div class="heading">如何辦理退換貨?</div>
<div class="An ">請參考退貨服務頁面。</div>
</div>
<div class="Q">
<div class="heading">退款方式及退款時間?</div>
<div class="An">約7-8個工作天完成退款作業。</div>
</div>
<div class="Q">
<div class="heading">未退回的退款,是否可直接折抵新訂單?</div>
<div class="An">很抱歉,重新訂購時無法直接於新訂單扣抵。</div>
</div>
<div class="Q">
<div class="heading">發票遺失是否仍能辦理退換貨?</div>
<div class="An">很抱歉,需要有發票才能辦理退換貨。</div>
</div>
<div class="Q">
<div class="heading">什麼情況無法辦理退換貨?</div>
<div class="An">超過7天退貨期限,就無法辦理。</div>
</div>
</div>
SCSS
*{
padding: 0;
margin: 0;
box-sizing: border-box;
}
.QA{
width: 70vw;
margin: auto;
.Q{
background-color: rgb(209, 209, 209);
border-radius: 7px;
margin: 0.5rem;
padding: 0.5rem;
position: relative;
.heading{
font-size: 1.2rem;
padding:0 1rem;
padding-bottom: 0.2rem;
&:hover {
transition: all 0.3s;
color: #00838f;
}
&::before {
font-family: serif;
font-size: 1.5em;
padding-right: 0.5em;
content: 'Q';
}
&::after {
content: "\002B";
font-weight: bold;
font-size: 1.7rem;
position: absolute;
right: 10px;
top: 10px;
transition: transform 0.4s;
}
}
.An{
padding: 0;
margin-top: 0.5rem;
background-color: white;
border-radius: 5px;
position: relative;
height: 0;
overflow: hidden;
transition: height , padding .5s ;
color: rgb(116, 42, 42);
}
}
}
.open{
&::after{
transform: rotate(45deg);
}
}
.animation {
transition: height ,padding 0.3s;
}
.SlideDown {
height: auto !important;
padding: 1rem 2.5rem !important;
}
JavaScript
let question = document.querySelectorAll(".heading");
for (let label of question){
label.onclick = open;
}
function open(){
let Q = event.target.closest(".heading");
let A = Q.nextElementSibling;
A.classList.toggle('SlideDown');
Q.classList.toggle('open');
}