Propriedade animation-name: Chamando sua animação
Associe um @keyframes a um elemento HTML.
Você já aprendeu a criar o "roteiro" da sua animação usando a regra @keyframes. Agora, como você faz para que um elemento HTML execute esse roteiro? É para isso que serve a propriedade animation-name.
A propriedade animation-name é como o "nome do ator" que você associa a um "roteiro" (@keyframes). Ela vincula uma animação definida por @keyframes a um elemento HTML específico, fazendo com que esse elemento comece a se animar de acordo com as instruções do @keyframes.
Como funciona animation-name
Esta propriedade aceita o nome (identificador) da regra @keyframes que você deseja aplicar ao elemento.
Valores possíveis:
none(padrão): Nenhuma animação é aplicada ao elemento.nome-da-animacao: O nome que você deu à sua regra@keyframes(ex:minhaAnimacao,girarCaixa,pulsarCor).- Lista de nomes de animação: Você pode aplicar múltiplas animações a um único elemento, separando os nomes por vírgula.
Sintaxe:
.elemento {
animation-name: <valor>;
}
Exemplos:
1. Aplicando uma única animação:
@keyframes moverDireita {
from { transform: translateX(0); }
to { transform: translateX(100px); }
}
.box {
width: 100px;
height: 100px;
background-color: blue;
/* ... outras propriedades ... */
animation-name: moverDireita; /* Aplica a animação 'moverDireita' */
animation-duration: 2s;
animation-iteration-count: infinite;
}
Resultado: A caixa se move da esquerda para a direita e volta, repetidamente.
2. Aplicando múltiplas animações:
Você pode aplicar várias animações a um único elemento. Cada animação terá seu próprio conjunto de propriedades (duração, atraso, etc.).
@keyframes moverDireita {
from { transform: translateX(0); }
to { transform: translateX(100px); }
}
@keyframes mudarCor {
0% { background-color: blue; }
50% { background-color: green; }
100% { background-color: blue; }
}
.box {
width: 100px;
height: 100px;
/* ... outras propriedades ... */
/* Aplica duas animações: 'moverDireita' e 'mudarCor' */
animation-name: moverDireita, mudarCor;
/* As outras propriedades de animação também devem ser listas, correspondendo à ordem */
animation-duration: 2s, 3s; /* moverDireita dura 2s, mudarCor dura 3s */
animation-iteration-count: infinite, infinite;
}
Resultado: A caixa se move da esquerda para a direita (em 2s) enquanto sua cor de fundo muda de azul para verde e volta (em 3s), tudo simultaneamente e repetidamente.
Pontos Chave:
- Vínculo:
animation-nameé o elo entre a definição@keyframese o elemento HTML. - Identificador: O valor deve corresponder exatamente ao nome dado à sua regra
@keyframes. - Múltiplas Animações: Permite aplicar mais de uma animação a um elemento, o que é útil para efeitos combinados.
- Sem
animation-name: Se você definir outras propriedades de animação (comoanimation-duration) mas nãoanimation-name, a animação não será executada.
Exemplo Prático:
<!DOCTYPE html>
<html lang="pt-BR">
<head>
<meta charset="UTF-8">
<title>animation-name</title>
<style>
body {
font-family: Arial, sans-serif;
display: flex;
flex-wrap: wrap;
gap: 30px;
justify-content: center;
align-items: center;
min-height: 100vh;
background-color: #f0f2f5;
margin: 0;
}
/* --- Definições de @keyframes --- */
@keyframes girar {
from { transform: rotate(0deg); }
to { transform: rotate(360deg); }
}
@keyframes pulsar {
0% { transform: scale(1); opacity: 1; }
50% { transform: scale(1.2); opacity: 0.7; }
100% { transform: scale(1); opacity: 1; }
}
@keyframes deslizarCor {
0% { transform: translateX(0); background-color: #007bff; }
50% { transform: translateX(100px); background-color: #28a745; }
100% { transform: translateX(0); background-color: #007bff; }
}
.box {
width: 100px;
height: 100px;
background-color: #007bff;
border-radius: 10px;
display: flex;
justify-content: center;
align-items: center;
color: white;
font-weight: bold;
font-size: 1.1em;
box-shadow: 0 4px 8px rgba(0,0,0,0.1);
margin: 10px; /* Para melhor visualização */
}
/* --- Aplicação das Animações com animation-name --- */
.box-girar {
animation-name: girar;
animation-duration: 2s;
animation-iteration-count: infinite;
animation-timing-function: linear;
}
.box-pulsar {
animation-name: pulsar;
animation-duration: 1.5s;
animation-iteration-count: infinite;
animation-timing-function: ease-in-out;
}
.box-deslizar-cor {
animation-name: deslizarCor;
animation-duration: 3s;
animation-iteration-count: infinite;
animation-timing-function: ease-in-out;
}
.box-multiplas {
/* Aplicando duas animações: girar e pulsar */
animation-name: girar, pulsar;
/* As outras propriedades devem corresponder na ordem */
animation-duration: 3s, 1.5s; /* girar dura 3s, pulsar dura 1.5s */
animation-iteration-count: infinite, infinite;
animation-timing-function: linear, ease-in-out;
background-color: #ffc107; /* Cor base para a caixa com múltiplas animações */
}
</style>
</head>
<body>
<div class="box box-girar">Girar</div>
<div class="box box-pulsar">Pulsar</div>
<div class="box box-deslizar-cor">Deslizar</div>
<div class="box box-multiplas">Múltiplas</div>
</body>
</html>
Resultado:
- Observe como cada caixa executa a animação associada pelo
animation-name. - A caixa "Múltiplas" demonstra a combinação de duas animações diferentes.
Com animation-name, você dá vida aos seus elementos, conectando o roteiro da animação que você criou com o ator que irá executá-lo.