Estou utilizando o macOS High Sierra para as implementações. Estou no tópico 8.9 Começando com keyframes em que se faz efeito de animação usando @keyframes
no código <h1>Bem vindo!</h1>
. Estou seguindo rigorosamente o que está no livro na parte de CSS que é:
h1 {
animation: appear 2s 0 linear;
}
@keyframes appear {
0% {
opacity: 0;
transform: scale(2);
}
70% {
opacity: 1;
transform: scale(1);
}
100% {
transform: scale(1.2);
}
}
O código acima funciona no IE (executando via máquina virtual no Virtual Box) e no Safari, já no Firefox, Chrome e Opera não consigo fazer funcionar. Já tentei repetir os comandos com o nome dos vendors -webkit-
, -moz-
, -ms-
, -o-
precedendo as propriedades e nada também. O que será que está errado?
Descobri o que foi. O livro cita para usarmos a sintaxe animation: appear 2s 0 linear;
no seletor h1
, porém ao pesquisar no site https://www.w3schools.com/CSSref/css3_pr_animation.asp, constei que ele especifica que a sintaxe para a propriedade animation
ele diz:
animation: name duration timing-function delay iteration-count direction fill-mode play-state;
Ou seja, conclui que estava faltando parâmetro. Procurei então remover essa forma de implementação usando a propriedade animation
, e substitui pelas implementações explícitas dos parâmetros de animation
usando: animation-name
, animation-duration
, animation-delay
e animation-timing-function
, ficando:
h1 {
animation-name: appear;
animation-duration: 2s;
animation-delay: 0s;
animation-timing-function: linear;
color: #000;
font-size: 1.4em;
text-align: center;
transform: scale(1.2);
transform-origin: 50% 50%;
}
Bingo! Funcionou!
CORREÇÃO Número 2: Não precisa necessariamente fazer da forma acima, no livro está apenas precisando adicionar o s no “0” antes do “linear”:
animation: appear 2s 0s linear;