Trucs & Astuces

Retour d'un niveau
Retour à l'accueil


Comment écouter et récupérer la position d'un élément en mouvement par .animate() avec setinterval()


Récupération de position

Jusque là tout est ok et cela fonctionne très bien.

Mais comment puis-je connaitre en temps réel la position Top de la div qui viens juste d’être animée par la méthode .animate() sans faire planter le navigateur ?|

J'ai essayé avec un setInterval() mais setInterval() continue après que le Laser aie passer la coordonnée Top -35 !
L'écoute avec setInterval() continue et est relancée à chaque tire vu que l'événement clavier entraine l'appel de la fonction et donc setInterval() par la même occasion.

Içi j'ai virer mon code contenant setInterval() vu que cela fait planter le navigateur qui est ralentit de plus en plus jusque à se planter car avec ce setInterval() qui ne se stoppe pas je suis dans une boucle infinie.

Solus

  1. R: en passant par l'option step de .animate() option step .animate()
  2. Q: concernant le lien option step .animate() je constate que le résultat de console.log(pos); me renvoi un Object sous cette forme Object { top=65.01666259765625, left=67.33332824707031} :-) et que cela ne continue plus.
    Puisque c'est d'un objet qu'il s’agit je dois pouvoir atteindre la valeur top comme ceci pos[top] pour pouvoir utiliser la valeur top stockée dans la variable locale pos et là j'ai une erreur de type undefined
    J'utilise console.log(pos[top]); qui me renvoi undefined
  3. R: C’est pos.top ou alors pos['top']

Retour d'un niveau
Retour à l'accueil