Animações se consistem de dois componentes: um estilo descrevendo a animação e um set de keyframes que indicam o estado final e inicial do estilo CSS da animação, bem como possíveis waypoints intermediários ao longo do caminho.
Como vimos anteriormente, para animarmos algo com transition, dependemos de alguma ação do usuário agora e se quisermos algo nesse estilo?
Repare que a animação está acontecendo sozinha de forma contínua, bem semelhante a alguns itens que existem para chamar a atenção como setas indicando que algum ponto é clicável em alguns sites. Para isso ser possível estamos utilizando a propriedade animation.
Para entendermos como fazer a animação do exemplo, precisamos primeiramente entender a ideia de trabalhar com keyframes. Basicamente iremos definir que dado um espaço de tempo entre o começo e o fim do mesmo determinadas propriedades CSS serão aplicadas.
E para associar esses keyframes em um elemento do HTML, precisamos adicionar essa animação voltar, ou qualquer outra, através da propriedade animation:
Porém dessa forma a animação só acontece uma vez, caso tenhamos interesse em fazê-la acontecer de forma infinita podemos adicionar a propriedade animation-iteration-count: infinite; ao invés de infinite, podemos passar um número máximo de vezes que nossa animação irá se repetir, e caso você queria fazer a animação ir e voltar do ponto final para o começo e vice-versa é só adicionar a propriedade animation-direction: alternate;.
Para criar uma sequência de animação CSS, você estiliza o elemento que deseja animar com a propriedade animation ou suas sub-propriedades. Isso permite que você configure a sincronização da animação, bem como outros detalhes de como a sequência de animação deveria progredir.
As sub-propriedades da propriedade animation são:
animation-delay => especifíca quando uma animação deve começar. Você pode começar a animação no futuro, imediatamente ou desde o início, ou imediatamente e parcialmente através do ciclo de animação.
Exemplo:
animation-direction => Configura se a animação deve ou nao alternar a direção em cada execução durante a sequência ou voltar ao ponto inicial e se repetir. Pode-se atribuir os valores normal, reverse, alternate e alternate-reverse
Exemplo:
A cada ciclo de animação, a mesma será redefinida para o estado inicial e começará novamente. Este é o valor padrão.
A animação será redefinida para o estado final e começará novamente. As etapas de animação são executadas ao contrário e as funções de tempo também são invertidas.
A animação inverte a direção a cada ciclo, com a primeira iteração sendo reproduzida para a frente.
A animação inverte a direção a cada ciclo, com a primeira iteração sendo reproduzida ao contrário.
animation-duration => O tempo de duração da animação. Pode ser especificado usando segundos (s) ou milisegundos (ms). Também podemos usar segundos fracionados, ex: 0.5s.
Exemplo:
animation-iteration-count => Define quantas vezes essa animação será repetida. Pode ser especificado usando um número qualquer ou o valor infinite
Exemplo:
animation-name => Especifica o nome da regra com chaves @keyframes descrevendo os keyframes da animação.
animation-play-state => Define se a animação está rodando running, que é o padrão, ou pausada paused.
animation-timing-function => Controla a velocidade em que a animação irá ocorrer, no espaço de tempo definido pelo duration. Possui algumas palavras-chave já com velocidades mais comuns pré-definidas. São elas:
Exemplo:
Animação CSS. Site by Elton Rodrigo