115 of 119 menu

Metóda queue

Metóda queue nám umožňuje pracovať s frontou funkcií priradených k prvku. Pozrite si tiež metódu clearQueue, ktorá nám umožňuje odstrániť z fronty všetky funkcie, ktoré neboli spustené.

Syntax

Takto zobrazujeme frontu vykonávaných funkcií, priradených k prvku. Je možné odovzdať voliteľný parameter názov fronty v tvare reťazca (štandardne fx - štandardná fronta efektov):

.queue([názov fronty]);

Môžeme manipulovať s frontou. Vykoná sa raz pre každý prvok. Na to je možné odovzdať druhým parametrom pole funkcií, ktoré nahradia obsah aktuálnej fronty:

.queue([názov fronty], nová fronta );

Alebo druhým parametrom odovzdať novú callback-funkciu pre pridanie do fronty. Táto funkcia naopak dostáva inú funkciu ako parameter. To umožňuje automaticky odstraňovať z fronty ďalší prvok a posúvať frontu:

.queue([názov fronty], callback-funkcia(next) { next(); });

Každý prvok môže mať jednu alebo viacero front. V mnohých aplikáciách sa používa iba jedna (fx). Fronty umožňujú vykonávať postupnosť akcií s prvkom asynchrónne, bez prerušenia vykonávania programu. Volanie queue s callback-funkciou nám umožňuje umiestniť novú funkciu na koniec fronty. Callback-funkcia sa vykoná raz pre každý prvok v množine. Pri pridávaní funkcie pomocou queue, musíme sa uistiť, že potom bude zavolaná metóda dequeue, aby nasledujúca funkcia v reťazci začala fungovať.

Príklad

Pridajme užívateľskú funkciu. Najprv, po kliknutí na #animate, zobrazíme červený štvorec, ktorý sa bude pohybovať doprava počas 2s, potom pomocou queue pridáme užívateľskú funkciu, ktorá prefarbí štvorec na zelený, pridaním triedy newcolor. Ako vidíte, potom sa tu volá dequeue, aby sa odstránila funkcia z fronty. Potom sa náš štvorec bude pohybovať doľava pol sekundy a prefarbí späť na červený - pomocou druhej užívateľskej funkcie odstránime triedu newcolor. Po skončení animácie zbalíme náš štvorec:

<button id="animate">štart</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(); });

Príklad

Pridajme frontu v tvare poľa, aby sme odstránili predchádzajúcu. Pri kliknutí na tlačidlo #start budeme vidieť animáciu z predchádzajúceho príkladu. Pri kliknutí na tlačidlo #stop zastavíme animáciu pridaním prázdneho poľa. Pri opätovnom kliknutí na #start sa animácia začne odznova:

<button id="start">štart</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(); });

Pozrite si aj

  • metóda animate,
    ktorá animuje vlastnosti prvkov
  • metóda clearQueue,
    ktorá umožňuje odstrániť všetky nevykonané prvky z fronty funkcií
  • metóda dequeue,
    ktorá umožňuje vykonať ďalšiu funkciu vo fronte funkcií
Slovenčina
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Používame cookies na fungovanie stránky, analýzu a personalizáciu. Spracúvanie údajov prebieha v súlade s Politikou ochrany osobných údajov.
prijať všetky nastaviť odmietnuť