jqy:jqj
Trucs & Astuces
Comment écouter et récupérer la position d'un élément en mouvement par .animate() avec setinterval()
- lorsque l'on appuie sur une touche CTRL il appel la fonction tireCanonAmi() (point 5)
- la fonction tireCanonAmi() va ajouter par un élément div ayant une class .tireLaser dans le document principale #zoneGame
- on lui attribue des propriétés css avec .css()
- on lui attribue une méthode .animate() lui donnant un déplacement vers le haut jusque -35px
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
- R: en passant par l'option step de .animate() option step .animate()
- 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 - R: C’est pos.top ou alors pos['top']
jqy/jqj.txt · Dernière modification : de 127.0.0.1
