115 of 119 menu

Methode queue

De methode queue stelt ons in staat om te werken met de wachtrij functies, gekoppeld aan een element. Zie ook de methode clearQueue, die ons in staat stelt om alle functies uit de wachtrij te verwijderen, die niet zijn gestart.

Syntaxis

Zo tonen we de wachtrij van uit te voeren functies, gekoppeld aan een element. Je kan optioneel de naam van de wachtrij doorgeven als een string (standaard is fx - de standaard wachtrij voor effecten):

.queue([wachtrijnaam]);

We kunnen de wachtrij manipuleren. Wordt één keer uitgevoerd voor elk element. Hiervoor kan je een array van functies als tweede parameter doorgeven, die de inhoud van de huidige wachtrij zullen vervangen:

.queue([wachtrijnaam], nieuweWachtrij );

Of je kan een nieuwe callback-functie als tweede parameter doorgeven om toe te voegen aan de wachtrij. Deze functie ontvangt op zijn beurt een andere functie als parameter. Dit maakt het mogelijk om automatisch het volgende item uit de wachtrij te halen en de wachtrij te laten voortbewegen:

.queue([wachtrijnaam], callback-functie(volgende) { volgende(); });

Elk element kan één of meer wachtrijen hebben. In veel toepassingen wordt alleen één (fx) gebruikt. Wachtrijen maken het mogelijk om een reeks acties met een element asynchroon uit te voeren, zonder onderbreking van de programmausvoering. De aanroep queue met een callback-functie stelt ons in staat om een nieuwe functie aan het einde van de wachtrij te plaatsen. De callback-functie wordt één keer uitgevoerd voor elk element in de set. Bij het toevoegen van een functie met queue, moeten we ervoor zorgen dat later de methode dequeue wordt aangeroepen, zodat de volgende functie in de keten gaat werken.

Voorbeeld

Laten we een aangepaste functie toevoegen. Eerst, na het klikken op #animate, tonen we een rood vierkant, dat naar rechts zal bewegen gedurende 2s, vervolgens zullen we met behulp van queue een aangepaste functie toevoegen, die het vierkant groen zal kleuren, door de klasse newcolor toe te voegen. Zoals je ziet, wordt hier vervolgens dequeue aangeroepen, om de functie uit de wachtrij te halen. Vervolgens zal ons vierkant naar links bewegen gedurende een halve seconde en terug rood kleuren - bij behulp van de tweede aangepaste functie verwijderen we de klasse newcolor. Aan het einde van de animatie vouwen we ons vierkant in:

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

Voorbeeld

Laten we een wachtrij toevoegen in de vorm van een array, om de vorige te verwijderen. Bij het klikken op de knop #start zullen we de animatie uit het vorige voorbeeld zien. Bij het klikken op de knop #stop zullen we de animatie stoppen door een lege array toe te voegen. Bij het opnieuw klikken op #start zal de animatie opnieuw beginnen:

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

Zie ook

  • methode animate,
    die eigenschappen van elementen animeert
  • methode clearQueue,
    die het mogelijk maakt om alle niet-uitgevoerde items uit de wachtrij van functies te verwijderen
  • methode dequeue,
    die het mogelijk maakt om de volgende functie in de wachtrij van functies uit te voeren
Nederlands
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wij gebruiken cookies voor de werking van de site, analyse en personalisatie. De verwerking van gegevens gebeurt volgens het Privacybeleid.
alles accepteren aanpassen weigeren