【发布时间】:2013-01-01 07:28:47
【问题描述】:
在使用 CSS 关键帧动画时,我发现当我给一个元素提供两个动画时:
.element {
animation: animate1 1000ms linear infinite,
animate2 3000ms linear infinite;
}
如果两个动画都使用transform 属性进行动画处理,则只有最后一个通过级联触发。但是,如果@keyframes 动画是一个margin 或display 或其他css 属性,而另一个使用transform,那么它们都会触发。
here is a codepen example 相关代码如下。
CSS
@keyframes move {
0%, 100% { transform: translateX(0px); }
50% { transform: translateX(50px); }
}
@keyframes skew {
0%, 100% { transform: skewX(0deg); }
50% { transform: skewX(15deg); }
}
@keyframes opacity {
0%, 100% { opacity: 1; }
50% { opacity: .25; }
}
.taco {
animation: skew 2000ms linear infinite,
opacity 4000ms linear infinite;
}
在上面它们都触发了
.burger {
animation: skew 2000ms linear infinite,
move 4000ms linear infinite;
}
在上面只有最后一个触发器(通过级联)- 为什么?
有没有人可以在不使用js 的情况下解决这个问题?或者这是行不通的事情?这个例子非常简单,我知道我可以将动画合并为一个,而不必同时声明两者,但这是对我正在处理的更复杂动画的测试。
谢谢
【问题讨论】:
标签: css css-animations