使用transform属性不起作用的多个CSS关键帧动画

前端之家收集整理的这篇文章主要介绍了使用transform属性不起作用的多个CSS关键帧动画前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在使用CSS关键帧动画时,我发现当我给出一个元素两个动画,如:
.element {
    animation: animate1 1000ms linear infinite,animate2 3000ms linear infinite;
}

如果两个动画使用transform属性动画,则最后一个动画通过级联触发。但是如果@keyframes动画是让一个边距或显示或其他一些css属性,而另一个使用变换,那么它们都会触发。

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?或者这是不行的东西吗?这个例子很简单,我知道我可以将动画组合成一个,而不必声明两者,但这是一个更复杂的动画的测试。

谢谢

解决方法

你不能多次同一属性(这里是transform属性),在同一个元素上,最后一个将覆盖其他,

您应该将目标元素放入div中,并在目标元素上的div和其他transform-animation上应用一个transform-animation。

.div_class
{
    animation:animate1 1000ms linear infinite;
}

.element
{     
   animation:animate2 3000ms linear infinite;
}
原文链接:https://www.f2er.com/css/218039.html

猜你在找的CSS相关文章