115 of 119 menu

Metod queue

Metod queue nam omogućava da radimo sa redom funkcija vezanih za element. Pogledajte takođe metod clearQueue, koji nam omogućava da uklonimo iz reda sve funkcije koje nisu pokrenute.

Sintaksa

Ovako prikazujemo red funkcija koje se izvršavaju, vezanih za element. Možemo proslediti opcioni parametar naziv reda u vidu stringa (podrazumevano fx - standardni red efekata):

.queue([ime reda]);

Možemo manipulisati redom. Izvršava se jedan put za svaki element. Za to možemo proslediti drugim parametrom niz funkcija, koji će zameniti sadržaj trenutnog reda:

.queue([ime reda], novi red );

A možemo drugim parametrom proslediti novu callback-funkciju za dodavanje u red. Ova funkcija zauzvrat dobija drugu funkciju kao parametar. Ovo omogućava automatsko uklanjanje iz reda sledećeg elementa i pomeranje reda:

.queue([ime reda], callback-funkcija(next) { next(); });

Svaki element može imati jedan ili više redova. U mnogim aplikacijama se koristi samo jedan (fx). Redovi omogućavaju izvršavanje sekvence akcija sa elementom asinhrono, bez prekida izvršavanja programa. Poziv queue sa callback-funkcijom nam omogućava da smestimo novu funkciju na kraj reda. Callback-funkcija se izvršava jedan put za svaki element u skupu. Prilikom dodavanja funkcije pomoću queue, mi moramo biti sigurni da će kasnije biti pozvan metod dequeue, kako bi sledeća funkcija u lancu počela da radi.

Primer

Hajde da dodamo prilagođenu funkciju. Prvo, nakon klika na #animate, prikazaćemo crveni kvadrat, koji će se kretati udesno tokom 2s, zatim pomoću queue dodati prilagođenu funkciju, koja će prebojati kvadrat u zeleno, dodajući klasu newcolor. Kao što vidite, zatim se ovde poziva dequeue, da bi se uklonila funkcija iz reda. Zatim će se naš kvadrat kretati ulevo pola sekunde i prebojaće se nazad u crveno - pomoću druge prilagođene funkcije uklanjamo klasu newcolor. Po završetku animacije mi sklupčamo naš kvadrat:

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

Primer

Hajde da dodamo red u vidu niza, da bismo uklonili prethodni. Pri kliku na dugme #start videćemo animaciju iz prethodnog primera. Pri kliku na dugme #stop zaustavićemo animaciju putem dodavanja praznog niza. Pri ponovnom kliku na #start animacija će počinjati ispočetka:

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

Pogledajte takođe

  • metod animate,
    koji animira svojstva elemenata
  • metod clearQueue,
    koji omogućava brisanje svih neizvršenih elemenata iz reda funkcija
  • metod dequeue,
    koji omogućava izvršenje sledeće funkcije u redu funkcija
Srpski
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Koristimo kolačiće za rad sajta, analitiku i personalizaciju. Obrada podataka se vrši u skladu sa Politikom privatnosti.
prihvati sve podesi odbij