277 of 313 menu

Propriedade animation-fill-mode

A propriedade animation-fill-mode define em qual posição a animação deve parar após o término. Por padrão, a animação retorna ao valor inicial e isso pode não parecer muito bonito.

Sintaxe

seletor { animation-fill-mode: backwards | forwards | both | none; }

Valores

Valor Descrição
none Se houver um atraso na animação - durante o tempo de atraso o elemento permanecerá no lugar, e depois saltará para o quadro 0%. Após o término da animação, o elemento não permanecerá no estado onde parou, mas saltará para o estado inicial.
backwards Faz com que o elemento se mova após o carregamento da página para o quadro 0%, mesmo que haja um atraso animation-delay, e permaneça lá até que a animação comece. Após o término da animação, o elemento não permanecerá no estado onde parou, mas saltará para o estado inicial.
forwards Indica ao navegador que após o término da animação, o elemento permanecerá no estado onde parou.
both Inclui backwards e forwards - após o carregamento da página, o elemento se posicionará no quadro 0%, e após o término da animação, o elemento permanecerá onde parou.

Valor padrão: none.

Exemplo . Valor none

Neste exemplo, margin-left está definido como 300px para o elemento, e para o primeiro quadro da animação - como 0px. Como não há atraso animation-delay, o elemento, após o carregamento da página, ficará em 0px, e não em 300px. Além disso, após o término, a animação saltará para o valor inicial:

<div id="elem"></div> @keyframes move { from { margin-left: 0; } to { margin-left: 400px; } } #elem { margin-left: 300px; animation-fill-mode: none; animation-delay: 0s; animation-duration: 3s; animation-name: move; animation-iteration-count: infinite; animation-timing-function: linear; border: 1px solid black; width: 50px; height: 50px; }

:

Exemplo . Valor none

Neste exemplo, margin-left está definido como 300px para o elemento, e para o primeiro quadro da animação - como 0px. Também foi definido um atraso animation-delay de 3 segundos para o elemento, portanto, após o carregamento da página, o elemento ficará em 300px, e não em 0px, e permanecerá lá por 3 segundos, após o início da animação, e então saltará para 0px - e a animação começará de lá. Além disso, após o término, a animação saltará para o valor inicial:

<div id="elem"></div> @keyframes move { from { margin-left: 0; } to { margin-left: 400px; } } #elem { margin-left: 300px; animation-fill-mode: none; animation-delay: 0s; animation-duration: 3s; animation-name: move; animation-iteration-count: infinite; animation-timing-function: linear; border: 1px solid black; width: 50px; height: 50px; }

:

Exemplo . Valor backwards

Neste exemplo, margin-left está definido como 300px para o elemento, e para o primeiro quadro da animação - como 0px. Também foi definido animation-fill-mode com o valor backwards para o elemento, portanto, após o carregamento da página, o elemento ficará em 0px, e não em 300px, como era o caso para animation-fill-mode com o valor none. Além disso, após o término, a animação saltará para o valor inicial:

<div id="elem"></div> @keyframes move { from { margin-left: 0; } to { margin-left: 400px; } } #elem { margin-left: 300px; animation-fill-mode: backwards; animation-delay: 0s; animation-duration: 3s; animation-name: move; animation-iteration-count: infinite; animation-timing-function: linear; border: 1px solid black; width: 50px; height: 50px; }

:

Exemplo . Valor none e número de repetições igual a 1

Neste exemplo, margin-left está definido como 300px para o elemento, e para o primeiro quadro da animação - como 0px. Também foi definido um atraso animation-delay de 3 segundos para o elemento, portanto, após o carregamento da página, o elemento ficará em 300px, e não em 0px, e permanecerá lá por 3 segundos, após o início da animação, e então saltará para 0px - e a animação começará de lá. Como animation-fill-mode está definido com o valor none, após a reprodução da animação, o elemento retornará ao valor inicial:

<div id="elem"></div> @keyframes move { from { margin-left: 0; } to { margin-left: 400px; } } #elem { margin-left: 300px; animation-fill-mode: none; animation-delay: 3s; animation-duration: 3s; animation-name: move; animation-iteration-count: 1; animation-timing-function: linear; border: 1px solid black; width: 50px; height: 50px; }

:

Exemplo . Valor forwards e número de repetições igual a 1

Neste exemplo, animation-fill-mode está definido com o valor forwards, e o número de repetições da animação - como 1. Após a reprodução da animação, o elemento permanecerá na posição onde a animação terminou, e não saltará para o ponto inicial.

Além disso, margin-left está definido como 300px para o elemento, e para o primeiro quadro da animação - como 0px. Também foi definido um atraso animation-delay de 3 segundos para o elemento, portanto, após o carregamento da página, o elemento ficará em 300px, e não em 0px, e permanecerá lá por 3 segundos, após o início da animação, e então saltará para 0px - e a animação começará de lá:

<div id="elem"></div> @keyframes move { from { margin-left: 0; } to { margin-left: 400px; } } #elem { margin-left: 300px; animation-fill-mode: forwards; animation-delay: 3s; animation-duration: 3s; animation-name: move; animation-iteration-count: 1; animation-timing-function: linear; border: 1px solid black; width: 50px; height: 50px; }

:

Exemplo . Valor both e número de repetições igual a 1

Neste exemplo, animation-fill-mode está definido com o valor both, e o número de repetições da animação - como 1. Após o carregamento da página, o elemento ficará no primeiro quadro da animação (em 0px, e não em 300px), e após a reprodução da animação, o elemento permanecerá na posição onde a animação terminou, e não saltará para o ponto inicial:

<div id="elem"></div> @keyframes move { from { margin-left: 0; } to { margin-left: 400px; } } #elem { margin-left: 300px; animation-fill-mode: both; animation-delay: 3s; animation-duration: 3s; animation-name: move; animation-iteration-count: 1; animation-timing-function: linear; border: 1px solid black; width: 50px; height: 50px; }

:

Veja também

Português
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Nós usamos cookies para o funcionamento do site, análises e personalização. O processamento de dados é realizado de acordo com a Política de Privacidade.
aceitar todas configurar rejeitar