【发布时间】:2021-05-03 17:42:39
【问题描述】:
我有 7 个 div 元素(作为 100x100),我希望每个盒子一个接一个地转动 - 所以,当第一个完成旋转时,下一个开始。最好的情况是这将永远持续下去。但我不确定在哪里放置无限。我在问我是否可以仅在一个语句中而不是在这么多行中进行动画延迟。动画本身可以按我的意愿工作,但我对我编写代码的方式不满意。有没有更简单的方法?
这是我的代码:
div {
margin: 24px;
width: 50px;
height: 50px;
float: left;
background: #0f9;
animation: spin 4s cubic-bezier(.84, .13, .40, .96);
}
@keyframes spin {
0% {
transform: rotateY(0turn);
}
100% {
transform: rotateY(7turn);
}
}
.two {
animation-delay: 4s;
}
.three {
animation-delay: 8s;
}
.four {
animation-delay: 12s;
}
.five {
animation-delay: 16s;
}
.six {
animation-delay: 20s;
}
.seven {
animation-delay: 24s;
}
<div></div>
<div class="two"></div>
<div class="three"></div>
<div class="four"></div>
<div class="five"></div>
<div class="six"></div>
<div class="seven"></div>
目前,我在每个盒子上都有延迟。不管它是用纯 CSS、JS 还是 React 编写的。我感谢每一个使代码尽可能简单的建议。
【问题讨论】:
-
你是在问如何让动画循环播放?
-
我在问我是否可以写 .two {animation-delay}, three.{anim.. 例如只在一个语句中,而不是在这么多行中。动画本身可以按我的意愿工作,但我对我编写代码的方式不满意。
-
div的个数是固定的吗?您是避免使用 sass 还是可以使用它(因为它可能使动态情况更容易定义)?
-
@salia_in_red 除非你使用像sass 这样的预处理器,否则我很确定它会尽可能地紧凑。
-
@MosheJonathanGordonRadian sass 当然完全没问题 :) 是的,对于这个项目,div 的数量是恒定的!
标签: javascript css reactjs css-animations keyframe