Egenskaben animation-fill-mode
Egenskaben animation-fill-mode indstiller
i hvilken position animationer skal stoppe
efter afslutningen. Som standard vender animationen tilbage
til den oprindelige værdi, og dette kan se
ikke særlig pænt ud.
Syntaks
selektor {
animation-fill-mode: backwards | forwards | both | none;
}
Værdier
| Værdi | Beskrivelse |
|---|---|
none |
Hvis der er indstillet en forsinkelse på animationen - så i løbet af forsinkelsestiden
vil elementet forblive på plads, og derefter hoppe til 0%-rammen.
Efter afslutningen af animationen vil elementet ikke forblive i den tilstand,
hvor den stoppede, men hoppe tilbage til starttilstanden.
|
backwards |
Tvinger elementet til at bevæge sig efter indlæsning af siden til 0%-rammen,
selvom der er indstillet en forsinkelse
animation-delay,
og forblive der, indtil animationen starter.
Efter afslutningen af animationen vil elementet
ikke forblive i den tilstand, hvor den stoppede,
men hoppe tilbage til starttilstanden.
|
forwards |
Angiver til browseren, at efter afslutningen af animationen vil elementet forblive i den tilstand, hvor den stoppede. |
both |
Inkluderer både backwards og forwards - efter indlæsning
af siden vil elementet indstilles til 0%-rammen, og efter
afslutningen af animationen vil elementet forblive der, hvor den stoppede.
|
Standardværdi: none.
Eksempel . Værdien none
I dette eksempel er margin-left
indstillet til værdien 300px for elementet,
og for animationens første ramme - til 0px.
Da der ikke er nogen forsinkelse animation-delay,
vil elementet efter indlæsning af siden
stille sig i 0px, og ikke i 300px. Foruden
det, vil animationen efter afslutningen hoppe
tilbage til startværdien:
<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;
}
:
Eksempel . Værdien none
I dette eksempel er margin-left
indstillet til værdien 300px for elementet,
og for animationens første ramme - til 0px.
Der er også indstillet en forsinkelse animation-delay
på 3 sekunder for elementet, derfor vil elementet efter
indlæsning af siden stille sig i 300px,
og ikke i 0px, og vil stå der i 3
sekunder, hvorefter den hopper
til 0px - og animationen starter derfra.
Desuden vil animationen efter afslutningen
hoppe tilbage til startværdien:
<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;
}
:
Eksempel . Værdien backwards
I dette eksempel er margin-left
indstillet til værdien 300px for elementet,
og for animationens første ramme - til 0px.
Der er også indstillet animation-fill-mode
til værdien backwards for elementet, derfor vil elementet
efter indlæsning af siden stille sig i 0px,
og ikke i 300px, som det var for animation-fill-mode
med værdien none. Desuden vil animationen efter
afslutningen hoppe tilbage til startværdien:
<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;
}
:
Eksempel . Værdien none og antal gentagelser lig med 1
I dette eksempel er margin-left
indstillet til værdien 300px for elementet,
og for animationens første ramme - til 0px.
Der er også indstillet en forsinkelse animation-delay
på 3 sekunder for elementet, derfor vil elementet efter
indlæsning af siden stille sig i 300px,
og ikke i 0px, og vil stå der i 3
sekunder, hvorefter den hopper
til 0px - og animationen starter derfra.
Da animation-fill-mode er indstillet
til værdien none, vil elementet efter afspilning af animationen
vende tilbage til startværdien:
<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;
}
:
Eksempel . Værdien forwards og antal gentagelser lig med 1
I dette eksempel er animation-fill-mode
indstillet til værdien forwards, og
antallet
af gentagelser af animationen - til 1. Efter
afspilning af animationen vil elementet forblive i
den position, hvor animationen sluttede,
og ikke hoppe tilbage til udgangspunktet.
Desuden er margin-left indstillet
til værdien 300px for elementet, og for
animationens første ramme - til 0px. Der er også
indstillet en forsinkelse animation-delay
på 3 sekunder for elementet, derfor vil elementet efter
indlæsning af siden stille sig i 300px,
og ikke i 0px, og vil stå der i 3
sekunder, hvorefter den hopper
til 0px - og animationen starter derfra:
<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;
}
:
Eksempel . Værdien both og antal gentagelser lig med 1
I dette eksempel er animation-fill-mode
indstillet til værdien both, og antallet
af gentagelser af animationen - til 1. Efter
indlæsning af siden vil elementet stå i
animationens første ramme (i 0px, og ikke
i 300px), og efter afspilning af animationen vil elementet
forblive i den position, hvor animationen sluttede,
og ikke hoppe tilbage til udgangspunktet:
<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;
}
:
Se også
-
egenskaben
animation-name,
som angiver animationens navn -
egenskaben
animation-duration,
som angiver animationens varighed -
egenskaben
animation-delay,
som angiver forsinkelsen før udførelse af animationen -
egenskaben
animation-timing-function,
som angiver animationens udførelseshastighed -
egenskaben
animation-iteration-count,
som angiver antallet af gentagelser af animationen -
egenskaben
animation-direction,
som angiver animationens retning -
egenskaben
animation-play-state,
som giver mulighed for at sætte animationen på pause -
egenskaben
animation,
som er en forkortelse for animationer -
kommandoen
@keyframes,
som angiver animationens nøglerammer -
glide overgange
transition, som er en animation ved at holde markøren over elementet