115 of 119 menu

Metoda queue

Metoda queue nám umožňuje pracovat s frontou funkcí připojených k elementu. Viz také metodu clearQueue, která nám umožňuje odstranit z fronty všechny funkce, které nebyly spuštěny.

Syntaxe

Tímto způsobem zobrazíme frontu prováděných funkcí, připojených k elementu. Lze předat volitelným parametrem název fronty ve formě řetězce (výchozí je fx - standardní fronta efektů):

.queue([název fronty]);

Můžeme manipulovat s frontou. Provede se jednou pro každý element. K tomu lze předat druhým parametrem pole funkcí, které nahradí obsah aktuální fronty:

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

Nebo lze druhým parametrem předat novou callback funkci pro přidání do fronty. Tato funkce zase získává další funkci jako parametr. To umožňuje automaticky odstranit z fronty další prvek a posunout frontu:

.queue([název fronty], callback funkce(next) { next(); });

Každý element může mít jednu nebo více front. V mnoha aplikacích se používá pouze jedna (fx). Fronty umožňují provádět posloupnost akcí s elementem asynchronně, bez přerušení provádění programu. Volání queue s callback funkcí nám umožňuje umístit novou funkci na konec fronty. Callback funkce se provede jednou pro každý element v sadě. Při přidávání funkce pomocí queue musíme zajistit, že poté bude volána metoda dequeue, aby se spustila další funkce v řetězci.

Příklad

Přidejme vlastní funkci. Nejprve, po kliknutí na #animate zobrazíme červený čtverec, který se bude pohybovat doprava po dobu 2s, poté pomocí queue přidáme vlastní funkci, která přebarví čtverec na zelenou, přidáním třídy newcolor. Jak vidíte, poté je zde volána dequeue, aby se odstranila funkce z fronty. Poté se náš čtverec bude pohybovat doleva půl sekundy a přebarví se zpět na červenou - pomocí druhé vlastní funkce odstraníme třídu newcolor. Po dokončení animace sbalíme náš čtverec:

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

Příklad

Přidejme frontu ve formě pole, abychom odstranili předchozí. Po kliknutí na tlačítko #start uvidíme animaci z předchozího příkladu. Po kliknutí na tlačítko #stop zastavíme animaci přidáním prázdného pole. Po opětovném kliknutí na #start se animace začne znovu:

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

Viz také

  • metoda animate,
    která animuje vlastnosti elementů
  • metoda clearQueue,
    která umožňuje odstranit všechny neprovedené prvky z fronty funkcí
  • metoda dequeue,
    která umožňuje provést další funkci ve frontě funkcí
Čeština
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяDanskDeutschΕλληνικά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
Používáme soubory cookie pro fungování webu, analýzu a personalizaci. Zpracování údajů probíhá v souladu s Zásadami ochrany osobních údajů.
přijmout vše přizpůsobit odmítnout