Metoden animate
Metoden animate giver mulighed for at skabe
animations effekter for forskellige
CSS-egenskaber. Den eneste obligatoriske parameter
er et objekt med CSS-egenskaber, svarende til det,
vi sender til metoden
css.
Mange egenskaber, der har ikke-numeriske værdier eller flere
værdier, kan ikke animeres med jQuerys basisfunktionalitet
(f.eks. background-color). Kort navngivning af CSS-egenskaber understøttes heller ikke altid, f.eks.
font - i stedet skal man bruge fontSize eller
font-size. Foran værdier kan man sætte '+=' eller '-=',
i så fald vil den angivne værdi blive lagt til eller
trækkes fra egenskabens nuværende værdi. I stedet for numeriske
værdier kan man også sætte show, hide eller
toggle. Alle jQuery-effekter, inklusive animate, kan
deaktiveres globalt ved at bruge indstillingen
jQuery.fx.off = true,
hvilket sætter varigheden til 0.
Syntaks
Den første parameter for animationen er et objekt med
CSS-egenskaber og deres værdier i formatet
nøgle: værdi, som vi vil
animere. De resterende parametre betragtes som
valgfrie. Den anden parameter - bestemmer
animationens varighed i millisekunder, 400ms
som standard. Den tredje parameter er overgangsfunktionen
(som standard er det swing),
og den fjerde - en callback-funktion, som
kører efter animationen er udført:
.animate(egenskaber, [varighed ], [overgangsfunktion ], [callback-funktion ]);
Tid kan angives ikke kun i millisekunder,
men også med nøgleordene slow (600ms)
og fast (200ms), jo højere værdi,
desto langsommere animation.
Man kan give metoden forskellige
indstillinger som anden parameter, i form af et JavaScript-objekt, der indeholder
par nøgle: værdi:
.animate(egenskaber, indstillinger);
For eksempel, lad os sætte CSS-egenskaberne width
og height til værdien toggle. Varigheden
sat til 5000ms, vi sender overgangsfunktionerne som et objekt,
for bredde vil det være en lineær funktion, og for
højde - easeOutBounce, også efter
afslutning af animationen udføres funktionen én gang
(se nøglen complete), som efter elementet med
#test placerer en div med teksten 'Animation
complete.':
$('#test').animate({
width: 'toggle',
height: 'toggle'
}, {
duration: 5000,
specialEasing: {
width: 'linear',
height: 'easeOutBounce'
},
complete: function() {
$(this).after('<div>Animation complete.</div>');
}
});
Nedenfor i tabellen er egenskaber og metoder for
objektet options og deres beskrivelse vist:
| Navn | Beskrivelse |
|---|---|
duration |
Animationens varighed i millisekunder - streng eller
nummer. 400ms som standard.
|
easing |
Bestemmer hvilken overgangsfunktion der skal
bruges. swing som standard.
|
queue |
Boolsk værdi eller streng. true som
standard. Angiver - om animationen skal
sættes i kø. Ved værdien false
starter animationen øjeblikkeligt. Hvis parameteren
overføres som en streng, bliver animationen sat i
køen repræsenteret af denne parameter. Ved
brug af kø med brugerdefineret navn,
starter animationen ikke automatisk, for at
starte den - brug dequeue('queuename').
|
specialEasing |
Her kan du sende et objekt, hvor nøglerne er CSS-egenskaber, og værdierne - deres tilsvarende overgangsfunktioner. |
step |
Funktion, der kaldes for hver animeret
egenskab for hvert animeret element. Den giver mulighed for
at modificere Tween-objektet for at ændre værdien
af egenskaben før den bliver sat. Som
parametre tager den den nuværende værdi af tween
og Tween-objektet.
|
progress |
Funktion, der kaldes efter hvert trin i animationen,
kun én gang per element uafhængigt
af antallet af animerede egenskaber. Funktionen tager
tre parametre animation (som et promise),
progress (nummer fra 0 til 1)
og remainingMs (antal tilbageværende millisekunder).
|
complete |
Funktion, der kaldes én gang efter afslutningen af
elementets animation. Funktionen tager
animation (som et promise).
|
start |
Funktion, der kaldes, når animationen af
elementet begynder. Funktionen tager
animation (som et promise) og
jumpedToEnd (Boolsk værdi. Hvis
true, så afsluttes animationen automatisk).
|
done |
Funktion, der kaldes, når animationen af
elementet slutter (dens promise opfyldt
successfuldt). Funktionen tager
animation (som et promise) og
jumpedToEnd (Boolsk værdi. Hvis
true, så afsluttes animationen automatisk).
|
fail |
Funktion, der kaldes, når animationen af
elementet slutter med en fejl (dens promise
opfyldt med fejl). Funktionen tager
animation (som et promise) og
jumpedToEnd (Boolsk værdi. Hvis
true, så afsluttes animationen automatisk).
|
always |
Funktion, der kaldes, når animationen af
elementet afsluttes eller stoppes uden
at være færdig (dens promise opfyldt successfuldt eller med
fejl). Funktionen tager
animation (som et promise) og
jumpedToEnd (Boolsk værdi. Hvis
true, så afsluttes animationen automatisk).
|
Eksempel
Lad os ved klik på knappen #left,
flytte den grønne firkant til venstre, og ved knappen #right
til højre med 50px, også sætte varigheden
til 600ms - med kommandoen slow:
<button id="left">venstre</button>
<button id="right">højre</button>
<div class="block"></div>
div {
position: absolute;
background-color: green;
left: 50px;
width: 100px;
height: 100px;
margin: 5px;
}
$('#right').click(function() {
$('.block').animate({'left': '+=50px'}, 'slow');
});
$('#left').click(function() {
$('.block').animate({'left': '-=50px'}, 'slow');
});
Se også
-
metoden
show,
som jævnt viser elementer -
metoden
stop,
som giver mulighed for at stoppe en startet animation -
metoden
delay,
som indstiller forsinkelse for hændelsers udførelse -
egenskaben
jQuery.fx.off,
som giver mulighed for globalt at deaktivere animation -
selektoren
animated,
som vælger elementer, der i øjeblikket er involveret i animation