如何每5分钟再次运行CSS动画?
HTML
<div></div>
CSS
div {
width: 300px;
height: 300px;
animation: anim 1s;
background: brown;
}
@keyframes anim {
from {
background: red;
}
top {
background: blue;
}
}
需要这个没有javascript
答案 0 :(得分:2)
你需要&#34;假&#34;如果你想要一个纯CSS解决方案。使用百分比属性和动画持续时间来模拟延迟。
例如
div {
height: 20px;
width: 20px;
background-color: blue;
animation: changebgc 5s infinite;
}
@keyframes changebgc {
2% {
background-color: red;
}
4% {
background-color: blue;
}
98% {
background-color: blue;
}
}
&#13;
<div></div>
&#13;
答案 1 :(得分:2)
在CSS中执行此操作需要一些黑客攻击,但可以完成。您将不得不做一些数学运算,并找到如何正确计时动画:
div {
width: 300px;
height: 300px;
animation: anim 300s infinite;
background: brown;
}
@keyframes anim {
0% {
background: red;
}
0.33% {
background: blue;
}
100% {
background: blue;
}
}
<强> JSFiddle demo 强>
这样做的一个问题是更改时间更难。使用当前设置,red - blue
转换需要1秒,就像您在JSFiddle中一样
你如何计算它很简单:
100 / #_seconds = percentage in animation for 1 sec
例如{} 100 / 300 = 0.33
您可以在此网站上阅读更多相关信息:
http://samuelmichaud.fr/2013/web-design/add-a-delay-between-repeated-css3-animations/
答案 2 :(得分:0)
我认为你可以玩“动画持续时间”和“动画延迟”规则。您可以设置效果的持续时间,以及等待下一次迭代的延迟。
div{
width: 300px;
height: 300px;
background: brown;
animation-name: anim;
animation-duration: 10s;
animation-iteration-count: 10000;
animation-direction: alternate;
animation-timing-function: ease-out;
animation-fill-mode: forwards;
animation-delay: 50s;
}
@keyframes anim {
from {
background: red;
}
to {
background: blue;
}
}
希望它有所帮助。
此致