115 of 119 menu

Metode queue

Die metode queue laat ons toe om met die tou van funksies wat aan 'n element gekoppel is, te werk. Sien ook die metode clearQueue, wat ons toelaat om alle funksies wat nog nie uitgevoer is nie uit die tou te verwyder.

Sintaksis

So wys ons die tou van funksies wat uitgevoer word, gekoppel aan die element. 'n Opsionele parameter kan oorgedra word wat die naam van die tou is as 'n string (standaard is dit fx - die standaard effek-tou):

.queue([tou naam]);

Ons kan die tou manipuleer. Dit word een keer vir elke element uitgevoer. Om dit te doen, kan 'n tweede parameter oorgedra word wat 'n skikkings van funksies is, wat die inhoud van die huidige tou sal vervang:

.queue([tou naam], nuwe tou );

Of 'n tweede parameter kan oorgedra word wat 'n nuwe callback-funksie is om by die tou te voeg. Hierdie funksie ontvang op sy beurt 'n ander funksie as 'n parameter. Dit laat toe om die volgende item outomaties uit die tou te verwyder en die tou te skuif:

.queue([tou naam], callback-funksie(next) { next(); });

Elke element kan een of meer toue hê. In baie toepassings word slegs een (fx) gebruik. Toe laat toe om volgorde van aksies met 'n element asinkroon uit te voer, sonder om die program uitvoering te onderbreek. Die oproep van queue met 'n callback-funksie laat ons toe om 'n nuwe funksie aan die einde van die tou te plaas. Die callback-funksie word een keer vir elke element in die stel uitgevoer. Wanneer 'n funksie met queue bygevoeg word, moet ons seker maak dat die metode dequeue later aangeroep sal word, vir die volgende funksie in die ketting om te begin werk.

Voorbeeld

Kom ons voeg 'n pasgemaakte funksie by. Eerstens, na die klik op #animate, sal ons 'n rooi vierkant wys, wat na regs sal beweeg vir 2s, dan sal ons met queue 'n pasgemaakte funksie byvoeg wat die vierkant groen sal maak deur die klas newcolor by te voeg. Soos jy kan sien, word dequeue dan hier aangeroep om die funksie uit die tou te verwyder. Dan sal ons vierkant 'n halwe sekonde na links beweeg en terug na rooi verander - met die tweede pasgemaakte funksie verwyder ons die klas newcolor. Aan die einde van die animasie sluit ons ons vierkant toe:

<button id="animate">begin</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('stadig') .animate({left: '+=200'}, 2000) .queue(function() { $(this).addClass('newcolor').dequeue(); }) .animate({left: '-=200'}, 500) .queue(function() { $(this).removeClass('newcolor').dequeue(); }) .slideUp(); });

Voorbeeld

Kom ons voeg 'n tou as 'n skikking by, om die vorige een te verwyder. As daar op die knoppie #start gedruk word, sal ons die animasie van die vorige voorbeeld sien. As daar op die knoppie #stop gedruk word, sal ons die animasie stop deur 'n leë skikking by te voeg. As daar weer op #start gedruk word, sal die animasie weer van voor af begin:

<button id="start">begin</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('stadig') .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(); });

Sien ook

  • die metode animate,
    wat eienskappe van elemente animeer
  • die metode clearQueue,
    wat toelaat om alle onvoltooide items uit die funksie-tou te verwyder
  • die metode dequeue,
    wat toelaat om die volgende funksie in die funksie-tou uit te voer
Afrikaans
AzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικά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
Ons gebruik koekies vir die werking van die webwerf, ontleding en personalisering. Die verwerking van data geskied volgens die Privaatheidsbeleid.
aanvaar alles instel verwerp