115 of 119 menu

Méthode queue

La méthode queue nous permet de travailler avec la file d'attente des fonctions liées à un élément. Voir aussi la méthode clearQueue, qui nous permet de supprimer de la file d'attente toutes les fonctions qui n'ont pas été exécutées.

Syntaxe

Ainsi nous affichons la file d'attente des fonctions exécutables, liées à l'élément. On peut passer en paramètre optionnel le nom de la file d'attente sous forme de chaîne (par défaut fx - file d'attente standard des effets) :

.queue([nom de la file d'attente]);

Nous pouvons manipuler la file d'attente. Exécuté une fois pour chaque élément. Pour cela, on peut passer en second paramètre un tableau de fonctions, qui remplacera le contenu de la file d'attente actuelle :

.queue([nom de la file d'attente], nouvelle file d'attente );

Ou on peut passer en second paramètre une nouvelle fonction callback pour l'ajouter à la file d'attente. Cette fonction reçoit à son tour une autre fonction en tant que paramètre. Cela permet de retirer automatiquement de la file d'attente l'élément suivant et de faire avancer la file d'attente :

.queue([nom de la file d'attente], fonction callback(next) { next(); });

Chaque élément peut avoir une ou plusieurs files d'attente. Dans de nombreuses applications, une seule est utilisée (fx). Les files d'attente permettent de réaliser une séquence d'actions avec l'élément de manière asynchrone, sans interrompre l'exécution du programme. L'appel de queue avec une fonction callback nous permet de placer une nouvelle fonction à la fin de la file d'attente. La fonction callback est exécutée une fois pour chaque élément dans l'ensemble. Lors de l'ajout d'une fonction avec queue, nous devons nous assurer qu'ensuite la méthode dequeue sera appelée, afin que la fonction suivante dans la chaîne se déclenche.

Exemple

Ajoutons une fonction personnalisée. D'abord, après avoir cliqué sur #animate, nous afficherons un carré rouge, qui se déplacera vers la droite pendant 2s, puis à l'aide de queue nous ajouterons une fonction personnalisée, qui repeindra le carré en vert, en ajoutant la classe newcolor. Comme vous pouvez le voir, ensuite on appelle ici dequeue, pour retirer la fonction de la file d'attente. Ensuite notre carré se déplacera vers la gauche pendant une demi-seconde et se repeindra en rouge - à l'aide de la deuxième fonction personnalisée nous retirons la classe newcolor. À la fin de l'animation nous replions notre carré :

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

Exemple

Ajoutons une file d'attente sous forme de tableau, pour supprimer la précédente. En cliquant sur le bouton #start nous verrons l'animation de l'exemple précédent. En cliquant sur le bouton #stop nous arrêterons l'animation en ajoutant un tableau vide. En cliquant à nouveau sur #start l'animation redémarrera :

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

Voir aussi

  • la méthode animate,
    qui anime les propriétés des éléments
  • la méthode clearQueue,
    qui permet de supprimer tous les éléments non exécutés de la file d'attente des fonctions
  • la méthode dequeue,
    qui permet d'exécuter la fonction suivante dans la file d'attente des fonctions
Français
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Nous utilisons des cookies pour le fonctionnement du site, l'analyse et la personnalisation. Le traitement des données est effectué conformément à la Politique de confidentialité.
accepter tout personnaliser refuser