<dl class="accordion-panel">
<dt><a href="#acc1">1</a></dt>
<dd id="acc1" class="current">
<div>テキストが入ります。テキストが入ります。テキストが入ります。テキストが入ります。テキストが入ります。テキストが入ります。テキストが入ります。<br>テキストが入ります。テキストが入ります。テキストが入ります。テキストが入ります。テキストが入ります。テキストが入ります。テキストが入ります。テキストが入ります。テキストが入ります。テキストが入ります。テキストが入ります。テキストが入ります。テキストが入ります。テキストが入ります。<br>テキストが入ります。テキストが入ります。テキストが入ります。テキストが入ります。テキストが入ります。テキストが入ります。テキストが入ります。</div>
</dd>
<dt><a href="#acc2">2</a></dt>
<dd id="acc2">
<div>テキストが入ります。テキストが入ります。テキストが入ります。テキストが入ります。テキストが入ります。テキストが入ります。テキストが入ります。<br>テキストが入ります。テキストが入ります。テキストが入ります。テキストが入ります。テキストが入ります。テキストが入ります。テキストが入ります。テキストが入ります。テキストが入ります。テキストが入ります。テキストが入ります。テキストが入ります。<br>テキストが入ります。テキストが入ります。テキストが入ります。テキストが入ります。テキストが入ります。テキストが入ります。テキストが入ります。テキストが入ります。テキストが入ります。テキストが入ります。テキストが入ります。テキストが入ります。テキストが入ります。テキストが入ります。</div>
</dd>
<dt><a href="#acc3">3</a></dt>
<dd id="acc3">
<div>テキストが入ります。テキストが入ります。テキストが入ります。<br>テキストが入ります。テキストが入ります。テキストが入ります。テキストが入ります。<br>テキストが入ります。テキストが入ります。テキストが入ります。テキストが入ります。テキストが入ります。テキストが入ります。テキストが入ります。</div>
</dd>
<dt><a href="#acc4">4</a></dt>
<dd id="acc4">
<div>テキストが入ります。テキストが入ります。テキストが入ります。テキストが入ります。テキストが入ります。テキストが入ります。テキストが入ります。<br>テキストが入ります。テキストが入ります。テキストが入ります。テキストが入ります。テキストが入ります。テキストが入ります。テキストが入ります。テキストが入ります。テキストが入ります。テキストが入ります。テキストが入ります。テキストが入ります。<br>テキストが入ります。テキストが入ります。テキストが入ります。テキストが入ります。</div>
</dd>
</dl>
.accordion-panel {
display: flex;
height: 300px;
}
.accordion-panel dt {
padding: 12px;
background: #333;
}
.accordion-panel dt > a {
display: block;
height: 100%;
color: #fff;
}
.accordion-panel dd {
width: 0;
height: 100%;
background: #555;
color: #fff;
overflow: hidden;
transition: width 0.3s;
}
.accordion-panel dd.current {
width: 100%;
}
.accordion-panel dd > div {
padding: 12px;
}
.accordion-panel {
display: flex;
height: 300px;
& dt {
padding: $space_md;
background: $color_main;
& > a {
display: block;
height: 100%;
color: $color_opposite;
}
}
& dd {
width: 0;
height: 100%;
background: $color_sub;
color: $color_opposite;
overflow: hidden;
transition: width $speed_fast;
&.current {
width: 100%;
}
& > div {
padding: $space_md;
}
}
}
(function() {
const accordionBtns = document.querySelectorAll('.accordion-panel a');
if(!accordionBtns) {return;}
accordionBtns.forEach(btn => {
btn.addEventListener('click', (e) => {
e.preventDefault();
accordionChange(btn);
});
});
function accordionChange(btn) {
const currentBtn = document.querySelector('.current');
currentBtn.classList.remove('current');
const nextBtn = document.querySelector(btn.getAttribute('href'));
nextBtn.classList.add('current');
}
}());