当前位置:  开发笔记 > 前端 > 正文

多个关键帧动画无法在safari中运行

如何解决《多个关键帧动画无法在safari中运行》经验,为你挑选了0个好方法。

我正在使用HTML5横幅,它有很多CSS3动画.为了制作可重复使用的关键帧动画,我在单个元素上使用多个动画.除了野生动物园,它的工作完美.

CSS:

.text1 {
    -webkit-animation: fadeOutRight 1s 3s forwards;
    animation: fadeOutRight 1s 3s forwards;
}
.text2 {
    -webkit-animation: fadeInLeft 1s 4s both, fadeOutRight 1s 7s forwards;
    animation: fadeInLeft 1s 4s both, fadeOutRight 1s 7s forwards;
}
.text3 {
    -webkit-animation: fadeInLeft 1s 8s both;
    animation: fadeInLeft 1s 8s both;
}

/* fadeInLeft */
@-webkit-keyframes fadeInLeft {
    0% { -webkit-transform: translateX(-100px); opacity: 0; }
    100% { -webkit-transform: translateX(0px); opacity: 1; }
}
@keyframes fadeInLeft {
    0% { transform: translateX(-100px); opacity: 0; }
    100% { transform: translateX(0px); opacity: 1; }
}

/* fadeOutRight */
@-webkit-keyframes fadeOutRight {
    0% { -webkit-transform: translateX(0px); opacity: 1; }
    100% { -webkit-transform: translateX(100px); opacity: 0; }
}
@keyframes fadeOutRight {
    0% { transform: translateX(0px); opacity: 1; }
    100% { transform: translateX(100px); opacity: 0; }
}

jsfiddle链接

可行的解决方案:

    用另一个/更多元素包装元素并为每个元素添加单个动画.此解决方案需要额外的样式用于包装元素.

    将多个动画合并为一个此解决方案会增加复杂性,keyframes rule并且难以为复杂动画维护.

    根据另一个stackOverflow帖子的接受答案- You cannot animate same attribute more than once, on a same element, the last one will overwrite other.在我的情况下,仅适用于safari,第一个动画只运行不是第二个.如果我没有在多个动画上设置相同的属性,那么它对于safari(jsfiddle)也很好.这个不适合我,因为我需要在多个动画中制作相同属性的动画.

注意:

虽然我在同一个元素上使用多个动画,但我不是同时制作动画,但每个动画之间都有延迟.

题:

无论动画属性如何,是否可以在同一元素上使用多个CSS3动画?

推荐阅读
保佑欣疼你的芯疼
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有