11521 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

Est ce que, par rapport au bout de code que je vais vous présenter, les commentaires sont bons.

En fait, j'essaye de comprendre le bis là :
 .animate({top: '-=200'}, 'slow', bis);


Voilà le code avec les commentaires :


$(function() {
    function bis() {
      $('#balle').animate({left: '+=200'}, 'slow')
                 .animate({top: '+=200'}, 'slow')
                 .animate({left: '-=200'}, 'slow')
                 .animate({top: '-=200'}, 'slow', bis);
				 //.animate({top: '-=200'}, 'slow', bis); En gros le "bis" dans la fonction animate sera appelé dès que l'animation "top: '-=200'" sera fini. 
				 //Cela permet de faire une animation en boucle. donc bis ==> function bis() etc en boucle 
    };
	
	//L'appel à "bis()" après la déclaration de la fonction sert à lancer la première fois l'animation (comme si tu faisais un "start" de ton action)
    bis();
  });



le
  bis();
est appelé une seule fois ou à l'infini?

Je suis en train de lire un grand tuto sur jquery et là je sèche complètement sur ce bout de code...

Pouvez vous m'éclairer un peu plus sur tout cela?

Merci Smiley cligne
Bonjour,

Tu as parfaitement compris le principe, on appelle une première fois la fonction bis() et en fin d'animation, on rappelle cette même fonction (récursivité) dans le callback de la fonction animate de jQuery (fonction de retour appelée à la fin d'une fonction) pour continuer l'animation, et ce (en principe) éternellement.
Bonjour,
Merci pour ta réponse!
On m'a un peu aidé sur ce coup là mais maintenant j'ai bien compris, effectivement! Smiley biggol

Donc le callback permet de faire tourner en boucle la fonction.

Mais, ce callback, a t'il d'autre fonction que celle ci?

Merci Smiley cligne
oceane751 a écrit :
Donc le callback permet de faire tourner en boucle la fonction.

Dans le cas présent oui, PARCE QU'il rappelle la même fonction.
oceane751Mais, ce callback, a t'il d'autre fonction que celle ci? a écrit :

En général, le callback permet de lancer une autre fonction après la fin de la première.