Movatterモバイル変換


[0]ホーム

URL:


  1. Tecnologia Web para desenvolvedores
  2. CSS
  3. Referência de CSS
  4. Properties
  5. animation

Esta página foi traduzida do inglês pela comunidade.Saiba mais e junte-se à comunidade MDN Web Docs.

View in EnglishAlways switch to English

animation

Baseline Widely available *

This feature is well established and works across many devices and browser versions. It’s been available across browsers since setembro de 2015.

* Some parts of this feature may have varying levels of support.

A propriedadeCSSabreviadaanimation, aplica uma animação entre estilos. É uma abreviação deanimation-name,animation-duration,animation-timing-function,animation-delay,animation-iteration-count,animation-direction,animation-fill-mode, eanimation-play-state.

Experimente

animation: 3s ease-in 1s infinite reverse both running slidein;
animation: 3s linear 1s infinite running slidein;
animation: 3s linear 1s infinite alternate slidein;
animation: 0.5s linear 1s infinite alternate slidein;
<section>  <div></div></section>
#example-element {  background-color: #1766aa;  margin: 20px;  border: 5px solid #333;  width: 150px;  height: 150px;  border-radius: 50%;}@keyframes slidein {  from {    margin-left: -20%;  }  to {    margin-left: 100%;  }}

Propriedades constituintes

Esta propriedade é uma abreviação para as seguintes propriedades CSS:

Sintaxe

css
/* @keyframes duration | easing-function | delay |iteration-count | direction | fill-mode | play-state | name */animation: 3s ease-in 1s 2 reverse both paused slidein;/* @keyframes duration | easing-function | delay | name */animation: 3s linear 1s slidein;/* two animations */animation:  3s linear slidein,  3s ease-out 5s slideout;

A propriedadeanimation é especificada como uma ou mais animações separadas por vírgulas.

Cada animação individual é especificada como:

Valores

<single-easing-function>

Determina o tipo de transição. O valor deve ser um dos disponíveis em<easing-function>.

<single-animation-iteration-count>

O número de vezes que a animação é reproduzida. O valor deve ser um dos disponíveis emanimation-iteration-count.

<single-animation-direction>

A direção em que a animação é reproduzida. O valor deve ser um dos disponíveis emanimation-direction.

<single-animation-fill-mode>

Determina como os estilos devem ser aplicados no alvo da animação antes e depois de sua execução. O valor deve ser um dos disponíveis emanimation-fill-mode.

<single-animation-play-state>

Determina se a animação está sendo reproduzida ou não. O valor deve ser um dos disponíveis emanimation-play-state.

Descrição

A ordem dos valores de tempo dentro de cada definição de animação é importante: o primeiro valor que pode ser analisado como<time> é atribuído aoanimation-duration , e o segundo é atribuído aanimation-delay.

A ordem de outros valores dentro de cada definição de animação também é importante para distinguir um valoranimation-name de outros valores. Se um valor na abreviaçãoanimation puder ser analisado como um valor para uma propriedade de animação diferente deanimation-name, o valor será aplicado a essa propriedade primeiro e não aanimation-name. Por esta razão, a prática recomendada é especificar um valor paraanimation-name como o último valor em uma lista de valores ao usar a abreviaçãoanimation; isso é válido mesmo quando você especifica várias animações separadas por vírgula usando a abreviaçãoanimation.

Um valoranimation-name não precisa ser declarado na propriedade abreviadaanimation. Se nenhum nome existir, não haverá animação para aplicar em nenhuma das propriedades.

Quando o valoranimation-duration é omitido da propriedade abreviadaanimation, o valor padrão dessa propriedade é0s. Nesse caso, a animação ainda ocorrerá (oanimationStart e [animationEnd](/pt-BR/docs/Web/API/ Element/animationend_event) eventos serão acionados), mas nenhuma animação será visível.

Preocupações com acessibilidade

A animação piscando e piscando pode ser problemática para pessoas com problemas cognitivos, como o Transtorno de Déficit de Atenção e Hiperatividade (TDAH). Além disso, certos tipos de movimento podem ser um gatilho para distúrbios vestibulares, epilepsia e enxaqueca e sensibilidade escotópica.

Considere fornecer um mecanismo para pausar ou desabilitar a animação, bem como usar aConsulta de mídia de movimento reduzido para criar uma experiência complementar para usuários que têm expressou uma preferência por experiências animadas reduzidas.

Definição formal

Initial valueas each of the properties of the shorthand:
Aplica-se aall elements
Inheritednão
Computed valueas each of the properties of the shorthand:
Animation typeNot animatable

Sintaxe formal

animation =
<single-animation>#

<single-animation> =
<'animation-duration'>||
<easing-function>||
<'animation-delay'>||
<single-animation-iteration-count>||
<single-animation-direction>||
<single-animation-fill-mode>||
<single-animation-play-state>||
[none|<keyframes-name>]||
<single-animation-timeline>

<animation-duration> =
[auto|<time [0s,∞]>]#

<easing-function> =
<linear-easing-function>|
<cubic-bezier-easing-function>|
<step-easing-function>

<animation-delay> =
<time>#

<single-animation-iteration-count> =
infinite|
<number [0,∞]>

<single-animation-direction> =
normal|
reverse|
alternate|
alternate-reverse

<single-animation-fill-mode> =
none|
forwards|
backwards|
both

<single-animation-play-state> =
running|
paused

<keyframes-name> =
<custom-ident>|
<string>

<single-animation-timeline> =
auto|
none|
<dashed-ident>|
<scroll()>|
<view()>

<linear-easing-function> =
linear|
<linear()>

<cubic-bezier-easing-function> =
ease|
ease-in|
ease-out|
ease-in-out|
<cubic-bezier()>

<step-easing-function> =
step-start|
step-end|
<steps()>

<scroll()> =
scroll([<scroller>||<axis>]?)

<view()> =
view([<axis>||<'view-timeline-inset'>]?)

<linear()> =
linear([<number>&&<percentage>{0,2}]#)

<cubic-bezier()> =
cubic-bezier([<number [0,1]> ,<number>]#{2})

<steps()> =
steps(<integer> ,<step-position>?)

<scroller> =
root|
nearest|
self

<axis> =
block|
inline|
x|
y

<view-timeline-inset> =
[[auto|<length-percentage>]{1,2}]#

<integer> =
<number-token>

<step-position> =
jump-start|
jump-end|
jump-none|
jump-both|
start|
end

<length-percentage> =
<length>|
<percentage>

Exemplos

Nota:A animação das propriedades doCSS Box Model não é recomendada. A animação de qualquer propriedade de box model é inerentemente para a CPU; considere animar a propriedadetransform.

Nascer do Sol

Aqui animamos um sol amarelo em um céu azul claro. O sol nascepara o centro da viewport e depois desaparece de vista.

html
<div></div>
css
:root {  overflow: hidden; /* esconde qualquer parte do sol abaixo do horizonte */  background-color: lightblue;  display: flex;  justify-content: center; /* centraliza o sol ao fundo */}.sun {  background-color: yellow;  border-radius: 50%; /* cria um fundo circular */  height: 100vh; /* torna o sol do tamanho da viewport */  aspect-ratio: 1 / 1;  animation: 4s linear 0s infinite alternate sun-rise;}@keyframes sun-rise {  from {    /* empurra o sol para além da janela de visualização */    transform: translateY(110vh);  }  to {    /* retorna o sol à sua posição padrão */    transform: translateY(0);  }}

Animando Múltiplas Propriedades

Adicionando à animação do sol no exemplo anterior, adicionamos uma segunda animação mudando a cor do sol conforme ele nasce e se põe. O sol começa vermelho escuro quando está abaixo do horizonte e muda para laranja brilhante quando atinge o topo.

html
<div></div>
css
:root {  overflow: hidden;  background-color: lightblue;  display: flex;  justify-content: center;}.sun {  background-color: yellow;  border-radius: 50%;  height: 100vh;  aspect-ratio: 1 / 1;  animation: 4s linear 0s infinite alternate animating-multiple-properties;}/* é possível animar várias propriedades em uma única animação */@keyframes animating-multiple-properties {  from {    transform: translateY(110vh);    background-color: red;    filter: brightness(75%);  }  to {    transform: translateY(0);    background-color: orange;    /* propriedades não definidas, ou seja, 'filtro' reverterá para os valores padrão */  }}

Aplicando Múltiplas Animações

Aqui está um sol que nasce e se põe sobre um fundo azul claro. O solgira gradualmente através de um arco-íris de cores. O tempo do sol, posição e cor são independentes.

html
<div></div>
css
:root {  overflow: hidden;  background-color: lightblue;  display: flex;  justify-content: center;}.sun {  background-color: yellow;  border-radius: 50%;  height: 100vh;  aspect-ratio: 1 / 1;  /* várias animações são separadas por vírgulas, os parâmetros de cada animação são definidos independentemente */  animation:    4s linear 0s infinite alternate rise,    24s linear 0s infinite psychedelic;}@keyframes rise {  from {    transform: translateY(110vh);  }  to {    transform: translateY(0);  }}@keyframes psychedelic {  from {    filter: hue-rotate(0deg);  }  to {    filter: hue-rotate(360deg);  }}

Animações Múltiplas em Cascata

Aqui está um sol amarelo sobre um fundo azul claro. O sol salta entre aslados esquerdo e direito da viewport. O sol permanece na janela de visualização mesmoembora uma animação de ascensão seja definida. A propriedade de transformação da animação de subidaé 'substituído' pela animação de salto.

html
<div></div>
css
:root {  overflow: hidden;  background-color: lightblue;  display: flex;  justify-content: center;}.sun {  background-color: yellow;  border-radius: 50%;  height: 100vh;  aspect-ratio: 1 / 1;  /*    as animações declaradas posteriormente na cascata substituirão as    propriedades de animações declaradas anteriormente  */  /* bounce 'substitui' a transformação definida por ascensão, portanto, o sol só se move horizontalmente */  animation:    4s linear 0s infinite alternate rise,    4s linear 0s infinite alternate bounce;}@keyframes rise {  from {    transform: translateY(110vh);  }  to {    transform: translateY(0);  }}@keyframes bounce {  from {    transform: translateX(-50vw);  }  to {    transform: translateX(50vw);  }}

VejaUsando animações CSS para exemplos adicionais.

Especificações

Specification
CSS Animations Level 1
# animation

Compatiblidade com navegadores

Veja também

Help improve MDN

Learn how to contribute

This page was last modified on byMDN contributors.


[8]ページ先頭

©2009-2026 Movatter.jp