我有一个我正在进行的项目,最终结果将显示一个阳光明媚的字段,以及一个显示“让它下雨”的复选框。点击太阳落下的按钮,云将进入,将有动画css雨。我现在正在研究太阳的动画并且知道我想要它的方式。我正在使用一个已检查的伪类来启动雨动画和太阳的旋转。我遇到的问题是我不知道如何反转未检查状态的动画。
因此页面应该处理的顺序如下:
pseudo class:checked
被激活,动画开始现在,当按钮取消选中时,它只会重置整个页面。有没有办法在不使用任何JavaScript的情况下将动画反转为原始状态?这个项目只是CSS。
以下是codepen
上项目的链接以下是一些HTML:
<input class="rainsun" type="checkbox">
<div class="sky">
</div><!--end sky-->
<div class="sun_path">
<div class="sun"></div>
</div><!--end sun_path-->
<div class="grass">
</div><!--end grass-->
和动画的CSS:
/*animations*/
.rainsun:checked ~ .sun_path {
-webkit-animation: spin-right 3s 1 forwards;
-moz-animation: spin-right 3s 1 forwards;
animation: spin-right 3s 1 forwards;
}
/* keyframes */
@-webkit-keyframes spin-right {
100% {
-webkit-transform: rotate(180deg);
}
}
@-moz-keyframes spin-right{
100% {
-webkit-transform: rotate(180deg);
}
}
您可以点击codepen link。
查看其余的CSS和布局答案 0 :(得分:2)
尝试使用keyframes
并设置transform
,而不是使用transition: transform
。以下是我所谈论的一个例子:
.rainsun ~ .sun_path {
-webkit-transition: -webkit-transform 3s;
-moz-transition: -moz-transform 3s;
transition: transform 3s;
}
.rainsun:checked ~ .sun_path {
-webkit-transform: rotate(180deg);
-moz-transform: rotate(180deg);
transform: rotate(180deg);
}