115 of 119 menu

Metoden queue

Metoden queue giver os mulighed for at arbejde med køen af funktioner knyttet til et element. Se også metoden clearQueue, som giver os mulighed for at fjerne alle funktioner fra køen, som ikke er blevet startet.

Syntaks

Sådan viser vi køen af udførelsesfunktioner, knyttet til et element. Det er muligt at overføre et valgfrit parameter med køens navn i form af en streng (som standard fx - standard kø for effekter):

.queue([kø navn]);

Vi kan manipulere køen. Udføres én gang for hvert element. Til dette kan man overføre som andet parameter et array af funktioner, som erstatter indholdet af den aktuelle kø:

.queue([kø navn], ny kø );

Eller man kan som andet parameter overføre en ny callback-funktion for tilføjelse til køen. Denne funktion modtager til gengæld en anden funktion som parameter. Dette giver mulighed for automatisk at fjerne det næste element fra køen og få køen til at bevæge sig:

.queue([kø navn], callback-funktion(next) { next(); });

Hvert element kan have én eller flere køer. I mange applikationer bruges kun én (fx). Køer gør det muligt at udføre en sekvens af handlinger med et element asynkront, uden afbrydelse af programudførelsen. Kald af queue med en callback-funktion giver os mulighed for at placere en ny funktion i slutningen af køen. Callback-funktionen udføres én gang for hvert element i sættet. Ved tilføjelse af en funktion med queue, skal vi sikre os, at metoden dequeue bliver kaldt bagefter, for at den næste funktion i kæden kan virke.

Eksempel

Lad os tilføje en brugerdefineret funktion. Først, efter klik på #animate, viser vi en rød firkant, som bevæger sig til højre i løbet af 2s, derefter ved hjælp af queue tilføjer vi en brugerdefineret funktion, som omfarver firkanten til grøn ved at tilføje klassen newcolor. Som du kan se, bliver dequeue herefter kaldt for at fjerne funktionen fra køen. Derefter vil vores firkant bevæge sig til venstre i et halvt sekund og omfarves tilbage til rød - ved hjælp af den anden brugerdefinerede funktion fjerner vi klassen newcolor. Ved afslutningen af animationen skjuler vi vores firkant:

<button id="animate">start</button> <div></div> div { position: absolute; margin: 3px; width: 50px; height: 50px; left: 0px; top: 30px; background: red; display: none; } div.newcolor { background: green; } $('#animate').click(function() { $('div') .show('slow') .animate({left: '+=200'}, 2000) .queue(function() { $(this).addClass('newcolor').dequeue(); }) .animate({left: '-=200'}, 500) .queue(function() { $(this).removeClass('newcolor').dequeue(); }) .slideUp(); });

Eksempel

Lad os tilføje en kø i form af et array for at fjerne den forrige. Ved klik på knappen #start vil vi se animationen fra det foregående eksempel. Ved klik på knappen #stop stopper vi animationen ved at tilføje et tomt array. Ved gentaget klik på #start vil animationen starte forfra:

<button id="start">start</button> <button id="stop">stop</button> <div></div> div { position: absolute; margin: 3px; width: 50px; height: 50px; left: 0px; top: 30px; background: red; display: none; } div.newcolor { background: green; } $('#start').click(function() { $('div') .show('slow') .animate({left: '+=200'}, 5000) .queue(function() { $(this).addClass('newcolor').dequeue(); }) .animate({left: '-=200'}, 1500) .queue(function() { $(this).removeClass('newcolor').dequeue(); }) .slideUp(); }); $('#stop').click(function() { $('div').queue('fx', []).stop(); });

Se også

  • metoden animate,
    som animerer elementers egenskaber
  • metoden clearQueue,
    som giver mulighed for at slette alle ikke-udførte elementer fra køen af funktioner
  • metoden dequeue,
    som giver mulighed for at udføre den næste funktion i køen af funktioner
Dansk
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Vi bruger cookies til webstedets funktion, analyse og personalisering. Behandling af data foregår i henhold til Fortrolighedspolitikken.
accepter alle tilpas afvis