JAVASCRIPT Problème de position
Résolu
Bilow
-
Bilow -
Bilow -
Salut tout le monde !
J'ai écrit une page en HTML/ Javascript, qui, lors d'un clic sur un lien, doit faire déplacer une balise. Mais cela ne fonctionne pas.
La première fois de l'éxécution de la fonction move(), tout fonctionne bien, mais la deuxième fois, bug à la ligne 7 : Argument non valide.
Mais pourquoi ?
Merci d'avance,
Bilow.
J'ai écrit une page en HTML/ Javascript, qui, lors d'un clic sur un lien, doit faire déplacer une balise. Mais cela ne fonctionne pas.
La première fois de l'éxécution de la fonction move(), tout fonctionne bien, mais la deuxième fois, bug à la ligne 7 : Argument non valide.
Mais pourquoi ?
Merci d'avance,
Bilow.
<html> <head> <title>JS Move</title> <script type="text/javascript"> function move(balise, pixel, px_sec, facteur){ if(pixel!=0){ document.getElementById(balise).style.left=document.getElementById(balise).style.left+px_sec; // Ligne 7 pixel-=px_sec; px_sec*=facteur; move(balise, pixel, px_sec, facteur); } } </script> </head> <body> <p style="border: 1px black solid; position:absolute;" id="balise"><a href="javascript:move('balise', 200, 5, 1)">Hello world !</a></p> </body> </html>
A voir également:
- JAVASCRIPT Problème de position
- Ma position - Guide
- Suivi position google - Guide
- Partage de position whatsapp - Guide
- Telecharger javascript - Télécharger - Langages
- Connaitre sa position google - Guide
2 réponses
le pb vient du fait que la valeur retournée par document.getElementById(balise).style.left
est 200px et pas 200 donc l'addition 200px+5 ne marche pas
est 200px et pas 200 donc l'addition 200px+5 ne marche pas
<html> <head> <title>JS Move</title> <script type="text/javascript"> function move(balise, pixel, px_sec, facteur){ if(pixel!=0){ var old_pos=document.getElementById(balise).style.left; // de la forme 200px alert("Old pos: "+old_pos); //recup valeur numerique masque=new RegExp("[0-9]+","g"); if (tab=old_pos.match(masque)) { old_pos_num=parseInt(tab[0]); } var new_pos=eval(old_pos_num+px_sec); document.getElementById(balise).style.left=new_pos; pixel-=px_sec; px_sec*=facteur;move(balise, pixel, px_sec, facteur); } } </script> </head> <body> <p style="border: 1px black solid; position:absolute;" id="balise"><a href="javascript:move('balise', 200, 5, 1)">Hello world !</a></p> </body> </html>