我正在使用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; }
}
可行的解决方案:
keyframes rule
的复杂性,并且对于复杂的动画来说它不易维护。You cannot animate same attribute more than once, on a same element, the last one will overwrite other
。
在我的情况下,它只适用于野生动物园。第一个动画只是不运行
第二个。如果我没有在多个动画上设置相同属性的动画
那么它也适合野生动物园(jsfiddle)。这个不是
适合我,因为我需要动画相同的属性
多个动画。注意:
虽然我在同一个元素上使用多个动画,但我没有同时制作动画,但每个动画之间都有延迟。
问题:
是否可以在同一元素上使用多个CSS3动画而不管动画属性?
答案 0 :(得分:-1)
出于某些原因,Safari无法通过简短的方法来描述动画,例如:
animation: test 1s 2s 3 alternate backwards
需要对其进行详细描述,并列出其单独的属性:
.class{
animation-name: bounce;
animation-duration: 4s;
animation-iteration-count: 10;
animation-direction: alternate;
animation-timing-function: ease-out;
animation-fill-mode: forwards;
animation-delay: 2s;
}