在使用 CSS关键帧动画 时,我发现当我给一个元素两个动画效果时,例如:
.element {
animation: animate1 1000ms linear infinite,
animate2 3000ms linear infinite;
}
如果两个动画都只使用transform
属性进行动画,那么只有最后一个会通过层叠触发。但是,如果@keyframes
动画分别使用了margin
、display
或其他css
属性,而另一个使用了transform
,则它们都会触发。在此处查看相关代码的CodePen示例。 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
的解决方案?或者这是不可行的?示例非常简单,我知道我可以将动画合并成一个动画而不必声明两个,但这是我正在处理的更复杂动画的测试。
谢谢