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 № 1O 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: