/ / CSS3 Animations Questions - css, animação, css3

CSS3 Animations Questions - css, animação, css3

Tentando ter três elementos aparecem um após o outro na página, mas acontece o seguinte.

Todos os três elementos aparecem, o primeiro elementonão faz nada (parece já ter passado pela animação) Então o segundo elemento desaparece e então começa a animação e depois a mesma coisa para o terceiro elemento.

Aqui está o meu código, o que estou perdendo aqui:

@-webkit-keyframes reset {
0% {opacity: 0;}
100% {opacity: 0;}
}

@-webkit-keyframes fade-in {
0% { opacity: 0; -webkit-transform: scale(.1);}
85% {opacity: 1; -webkit-transform: scale(1.05);}
100% {-webkit-transform: scale(1);}
}


.fade-in {
-webkit-animation-name: reset, fade-in;
-webkit-animation-duration: .5s;
-webkit-animation-timing-function: ease-in;
-webkit-animation-iteration-count: 1;
}

.fade-in.one {-webkit-animation-delay: 0, .5;}
.fade-in.two {-webkit-animation-delay: 0, 1.5s;}
.fade-in.three {-webkit-animation-delay: 0, 2.5s;}

desde já, obrigado

Respostas:

2 para resposta № 1

O principal problema com o seu código é que você está perdendo a unidade de tempo ...

.fade-in.one {-webkit-animation-delay: 0, .5s;}

Enquanto testava seu código, tomei a liberdade desimplifique um pouco. Não há necessidade de ter duas animações separadas, há uma propriedade pouco conhecida chamada -webkit-animation-fill-mode que permitirá que sua animação permaneça em seu último estado. Aqui está a minha versão refatorada:

@-webkit-keyframes fade-in {
0% { opacity: 0; -webkit-transform: scale(.1);}
85% {opacity: 1; -webkit-transform: scale(1.05);}
100% {-webkit-transform: scale(1); opacity: 1;}
}

.fade-in {
-webkit-animation: fade-in .5s ease-in;
-webkit-animation-fill-mode: forwards;
-webkit-animation-iteration-count: 1;
opacity: 0;
}

.fade-in.one {-webkit-animation-delay: .5s;}
.fade-in.two {-webkit-animation-delay: 1.5s;}
.fade-in.three {-webkit-animation-delay: 2.5s;}

Você pode conferir aqui:

http://jsfiddle.net/vqfj7/