【发布时间】:2021-08-03 13:32:11
【问题描述】:
我正在制作一个小动画,用于在明暗模式之间切换我的网站。这是一个相当复杂的动画,所以我猜解决方案也会很复杂。
我基本上在类之间切换,但这会阻止我在切换按钮时反转动画。一直在网上寻找简单的解决方案,但没有找到任何解释如何使用多个 CSS 关键帧反转动画。
这是代码的CSS部分,基本上重复了8次:
.line {
width: 1rem;
height: 2rem;
background-color: black;
position: absolute;
display: block;
transform: translateY(5rem);
border-radius: 0.5em;
}
.is-dark {
animation: is-dark 2s forwards;
}
@keyframes is-dark {
0% {
height: 2rem;
width: 1rem;
border-radius: 0.5em;
transform: translateX(0) translateY(5rem);
}
33.33% {
height: 1rem;
width: 1rem;
border-radius: 50%;
transform: translateX(0) translateY(5rem);
}
66.66% {
height: 3rem;
width: 3rem;
border-radius: 50%;
transform: translateX(0) translateY(0);
}
100% {
height: 3rem;
width: 3rem;
border-radius: 50%;
transform: translateX(1rem) translateY(-1rem);
}
}
JS
let line = document.querySelector(".line");
let btn = document.querySelector(".btn");
btn.addEventListener("click", toggleDarkMode);
function toggleDarkMode() {
line.classList.toggle("is-dark");
}
这是此按钮的完整版本:https://jsfiddle.net/a6euokxy/4/
提前致谢, 陆拉蒙
【问题讨论】:
标签: javascript html css