English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
CSS3A função de animação permite que você crie animações de frames-chave.
No capítulo anterior, você já aprendeu como executar animações simples, por exemplo, através do CSS3A função de transição anima propriedades de um valor para outro. No entanto, o CSS3A transição é quase impossível de controlar como a animação varia ao longo do tempo.
CSS3A animação vai além das animações baseadas em chaves, permitindo que você especifique a variação do CSS ao longo do tempo em um conjunto de chaves, como animações Flash.
Criar uma animação CSS é um processo de dois passos, como mostrado no exemplo a seguir:
O primeiro passo para construir uma animação CSS é definir cada chaveframe e usar a declaração de chaveframe para nomear a animação.
O segundo passo é usar animation-A propriedade name faz referência às chaves por nome e adiciona animation-duration e outras propriedades opcionaisPropriedades de animaçãopara especificar o comportamento da animação.
No entanto, antes de referenciar ou aplicar as regras de chaveframes, não é necessário definir as regras de chaveframes. O exemplo a seguir mostrará como usar CSS3A função de animação especificará<div>a animação de uma caixa de um local horizontalmente para outro local.
.box { width: 50px; height: 50px; background: vermelho; position: relative; /* Chrome, Safari, Opera */ -webkit-animation-name: moveit; -webkit-animation-duration: 2s; animation-name: moveit; animation-duration: 2s; } /* Chrome, Safari, Opera */ @-webkit-keyframes moveit { from {left: 0;} to {left: 50%;} } @keyframes moveit { from {left: 0;} to {left: 50%;} }Teste para ver‹/›
Você deve especificar pelo menos dois atributos animation-name e animation-duration (maior que 0), para executar a animação. No entanto, todas as outrasPropriedades de animaçãosão opcionais, pois seus valores padrão não impedem a ocorrência da animação.
Atenção:Não todas as propriedades CSS são animáveis. Normalmente, qualquer propriedade CSS que aceita números, tamanhos, porcentagens ou cores é animável.
Chaves são usadas para especificar os valores das propriedades de animação em cada fase da animação. As chaves são definidas usandoRegras CSS-indicado por @keyframes. O seletor de regra de chaveframes começa com um percentual (%) ou palavras-chave de (igual a 0%) até (igual a100%)。 O seletor é usado para especificar a posição de construção da chave durante o processo de animação.
Os porcentagens representam a porcentagem da duração da animação, 0% representa o início da animação,100% representa o final.50% representa o meio, e assim por diante. Isso significa2s na animação.50% das chaves será a posição no meio da animação.1s。
.box { width: 50px; height: 50px; margin: 100px; background: vermelho; position: relative; left: 0; /* Chrome, Safari, Opera */ -webkit-animation-name: shakeit; -webkit-animation-duration: 2s; animation-name: shakeit; animation-duration: 2s; } /* Chrome, Safari, Opera */ @-webkit-keyframes shakeit { 12.5% {left: -50px;} 25% {left: 50px;} 37.5% {left: -25px;} 50% {left: 25px;} 62.5% {left: -10px;} 75% {left: 10px;} } @keyframes shakeit { 12.5% {left: -50px;} 25% {left: 50px;} 37.5% {left: -25px;} 50% {left: 25px;} 62.5% {left: -10px;} 75% {left: 10px;} }Teste para ver‹/›
A criação de animações requer muitas propriedades. No entanto, também é possível especificar todas as propriedades de animação em uma única propriedade, para reduzir o código.
A propriedade animation é uma propriedade abreviada, usada para definir todas as propriedades individuaisPropriedades de animação。Por exemplo:
.box { width: 50px; height: 50px; background: vermelho; position: relative; /* Chrome, Safari, Opera */ -webkit-animation: repeatit 2s linear 0s infinite alternate; animation: repeatit 2s linear 0s infinite alternate; } /* Chrome, Safari, Opera */ @-webkit-keyframes repeatit { from {left: 0;} to {left: 50%;} } @keyframes repeatit { from {left: 0;} to {left: 50%;} }Teste para ver‹/›
Atenção:Se falta ou não for especificado qualquer valor, será usado o valor padrão do atributo. Isso significa que se animation-Se falta o valor do atributo duration, não ocorrerá transição, pois seu valor padrão é 0.
A tabela a seguir resume brevemente todas as propriedades relacionadas a animações.
Atributo | Descrição |
---|---|
animation | Atributo abreviado usado para definir todas as propriedades de animação em uma única declaração. |
animation-name | Especificar o nome da animação que deve ser aplicada ao @keyframes selecionado. |
animation-duration | Especificar o número de segundos ou milissegundos necessários para a conclusão de um ciclo de animação. |
animation-timing-function | Especificar como a animação deve ser executada durante o período de cada ciclo, ou seja, a função de suavização. |
animation-delay | Especificar quando a animação deve começar. |
animation-iteration-count | Especificar o número de vezes que a animação deve ser reproduzida antes de parar. |
animation-direction | Especificar se a animação deve ser reproduzida em uma repetição alternada. |
animation-fill-mode | Especificar como o estilo deve ser aplicado ao objetivo da animação antes e após a execução da animação. |
animation-play-state | Especificar se a animação deve ser executada ou pausada. |
@keyframes | Especificar os valores das propriedades de animação para cada ponto durante o período da animação. |