I have a simple accordion and I'd like it to have a smooth scroll and fade in the text when expanding.
I'm almost there with this (see Codepen), however the keyframe animation only runs on first click. Could someone explain to me why this is? Do I need to use JS to check for the click to re-run the animation?
Is there a simpler way to do the text fade in with just CSS?
Thanks in advance for your time.
@keyframes fadeIn1 {
0% {
opacity: 0;
}
100% {
opacity: 1;
}
}
details {
padding: 10px;
border-bottom: 1px solid;
}
details summary {
cursor: pointer;
transition: margin 150ms ease-out;
}
details div {
opacity: 0;
}
details[open] summary {
margin-bottom: 10px;
}
details[open] div {
animation-duration: 1s;
animation-name: fadeIn1;
animation-timing-function: ease-in;
opacity: 1;
}
<details>
<summary>Question</summary>
<div>Lorem ipsum dolor sit amet consectetur adipisicing elit. Quia amet magnam fugit nihil delectus, id ratione deleniti minima, ipsum accusantium exercitationem est ipsa, possimus harum distinctio consequatur qui recusandae et. Alias quas temporibus aliquam modi nulla omnis unde atque magni tempora, corporis ducimus voluptas, recusandae, repellendus officiis molestias cumque quam.</div>
</details>
<details>
<summary>Question</summary>
<div>Lorem ipsum dolor sit amet consectetur adipisicing elit. Quia amet magnam fugit nihil delectus, id ratione deleniti minima, ipsum accusantium exercitationem est ipsa, possimus harum distinctio consequatur qui recusandae et. Alias quas temporibus aliquam modi nulla omnis unde atque magni tempora, corporis ducimus voluptas, recusandae, repellendus officiis molestias cumque quam.</div>
</details>
<details>
<summary>Question</summary>
<div>Lorem ipsum dolor sit amet consectetur adipisicing elit. Quia amet magnam fugit nihil delectus, id ratione deleniti minima, ipsum accusantium exercitationem est ipsa, possimus harum distinctio consequatur qui recusandae et. Alias quas temporibus aliquam modi nulla omnis unde atque magni tempora, corporis ducimus voluptas, recusandae, repellendus officiis molestias cumque quam.</div>
</details>
<details>
<summary>Question</summary>
<div>Lorem ipsum dolor sit amet consectetur adipisicing elit. Quia amet magnam fugit nihil delectus, id ratione deleniti minima, ipsum accusantium exercitationem est ipsa, possimus harum distinctio consequatur qui recusandae et. Alias quas temporibus aliquam modi nulla omnis unde atque magni tempora, corporis ducimus voluptas, recusandae, repellendus officiis molestias cumque quam.</div>
</details>