c'est assez simple à faire (en tout cas pour l'algo) :
voila le principe de base, il faut reussir à suivre le curseur de la souris
Code :
- <html>
- <head>
- </head>
- <div id=objet style="position:absolute;left:0px;top:0px">O</div>
- <body>
- <script language="javascript">
- function mm() {
- objet.style.left=event.x;
- objet.style.top=event.y;
- }
- document.onmousemove=mm;
- </script>
- </body>
- </html>
|
2° etapes ; il faut donner un mouvement à l'objet :
Code :
- <script language="javascript">
- var p=0.1256637;
- var px=0;
- var py=0;
- var i=0; // position : 0..49
- var r=50; // rayon du cercle
- // recuperation de la position de la souris
- function mm() {
- px=event.x;
- py=event.y;
- }
- // mouvement de l'objet
- function tmr() {
- objet.style.left=px+(r*Math.cos(p*i));
- objet.style.top=py+(r*Math.sin(p*i));
- i--;
- if (i<0) i=49;
- }
- document.onmousemove=mm;
- setInterval("tmr()",20);
- </script>
|
3° etapes, il faut dissocier son mouvement de celui de la souris, pour qu'il suive la souris avec un temps de retard. Pour ca il faut limiter son deplacement à chaque mise à jour :
Code :
- <script language="javascript">
- var p=0.1256637;
- var px=0;
- var py=0;
- var i=0; // position : 0..49
- var r=50; // rayon du cercle
- var max=5; // mouvement max de 10 pixels
- // recuperation de la position de la souris
- function mm() {
- dc=px-event.x;
- if (Math.abs(dc)<max) px=event.x;
- else if (dc<0) px+=max;
- else px-=max;
- dc=py-event.y;
- if (Math.abs(dc)<max) py=event.y;
- else if (dc<0) py+=max;
- else py-=max;
- }
- // mouvement de l'objet
- function tmr() {
- objet.style.left=px+(r*Math.cos(p*i));
- objet.style.top=py+(r*Math.sin(p*i));
- i--;
- if (i<0) i=49;
- }
- document.onmousemove=mm;
- setInterval("tmr()",20);
- </script>
|
voila, apres il ne reste plus qu'a mettre plusieurs objets.