277 of 313 menu

Właściwość animation-fill-mode

Właściwość animation-fill-mode ustawia w jakiej pozycji zatrzymywać animacje po zakończeniu. Domyślnie animacja wraca do wartości początkowej i to może wyglądać niezbyt ładnie.

Składnia

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

Wartości

Wartość Opis
none Jeśli ustawiono opóźnienie animacji - to w czasie trwania opóźnienia element pozostanie na miejscu, a potem skokiem przejdzie do 0% klatki. Po zakończeniu animacji element nie pozostanie w tym stanie, gdzie się zatrzymał, a przeskoczy do stanu początkowego.
backwards Wymusza na elemencie ruch po załadowaniu strony do 0% klatki, nawet jeśli ustawiono opóźnienie animation-delay, i pozostanie tam, aż nie rozpocznie się animacja. Po zakończeniu animacji element nie pozostanie w tym stanie, gdzie się zatrzymał, a przeskoczy do stanu początkowego.
forwards Wskazuje przeglądarce, że po zakończeniu animacji element pozostanie w tym stanie, gdzie się zatrzymał.
both Zawiera w sobie backwards i forwards - po załadowaniu strony element ustawi się do 0% klatki, a po zakończeniu animacji element pozostanie tam, gdzie się zatrzymał.

Wartość domyślna: none.

Przykład . Wartość none

W tym przykładzie margin-left ustawiono na wartość 300px dla elementu, a dla pierwszej klatki animacji - na 0px. Ponieważ nie ma opóźnienia animation-delay, to element po załadowaniu strony stanie w 0px, a nie w 300px. Oprócz tego, animacja po zakończeniu będzie przeskakiwać do wartości początkowej:

<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; }

:

Przykład . Wartość none

W tym przykładzie margin-left ustawiono na wartość 300px dla elementu, a dla pierwszej klatki animacji - na 0px. Również dla elementu ustawiono opóźnienie animation-delay na 3 sekundy, dlatego element po załadowaniu strony stanie w 300px, a nie w 0px, i będzie stać tam 3 sekundy po rozpoczęciu animacji a potem skokiem przejdzie do 0px - i animacja rozpocznie się stamtąd. Oprócz tego, animacja po zakończeniu będzie przeskakiwać do wartości początkowej:

<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; }

:

Przykład . Wartość backwards

W tym przykładzie margin-left ustawiono na wartość 300px dla elementu, a dla pierwszej klatki animacji - na 0px. Również dla elementu ustawiono animation-fill-mode na wartości backwards, dlatego element po załadowaniu strony stanie w 0px, a nie w 300px, jak to było dla animation-fill-mode na wartości none. Oprócz tego, animacja po zakończeniu będzie przeskakiwać do wartości początkowej:

<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; }

:

Przykład . Wartość none i liczba powtórzeń równa 1

W tym przykładzie margin-left ustawiono na wartość 300px dla elementu, a dla pierwszej klatki animacji - na 0px. Również dla elementu ustawiono opóźnienie animation-delay na 3 sekundy, dlatego element po załadowaniu strony stanie w 300px, a nie w 0px, i będzie stać tam 3 sekundy po rozpoczęciu animacji a potem skokiem przejdzie do 0px - i animacja rozpocznie się stamtąd. Ponieważ animation-fill-mode ustawiono na wartości none, to po odtworzeniu animacji element wróci do wartości początkowej:

<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; }

:

Przykład . Wartość forwards i liczba powtórzeń równa 1

W tym przykładzie animation-fill-mode ustawiono na wartości forwards, a liczba powtórzeń animacji - na 1. Po odtworzeniu animacji element pozostanie w tej pozycji, gdzie zakończyła się animacja, a nie skoczy do punktu wyjścia.

Oprócz tego, margin-left ustawiono na wartość 300px dla elementu, a dla pierwszej klatki animacji - na 0px. Również dla elementu ustawiono opóźnienie animation-delay na 3 sekundy, dlatego element po załadowaniu strony stanie w 300px, a nie w 0px, i będzie stać tam 3 sekundy po rozpoczęciu animacji, a potem skokiem przejdzie do 0px - i animacja rozpocznie się stamtąd:

<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; }

:

Przykład . Wartość both i liczba powtórzeń równa 1

W tym przykładzie animation-fill-mode ustawiono na wartości both, a liczba powtórzeń animacji - na 1. Po załadowaniu strony element będzie stać w pierwszej klatce animacji (w 0px, a nie w 300px), a po odtworzeniu animacji element pozostanie w tej pozycji, gdzie zakończyła się animacja, a nie skoczy do punktu wyjścia:

<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; }

:

Zobacz też

Polski
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wykorzystujemy pliki cookie do działania strony, analizy i personalizacji. Przetwarzanie danych odbywa się zgodnie z Polityką prywatności.
zaakceptuj wszystkie dostosuj odrzuć