Il codice può prima pensare alla posizione dell'oggetto e poi attuarla, in modo da eliminare posizioni reali e posizioni virtuali dovute a repentini rapidissimi spostamenti dell'oggetto.
Ecco: la funzione OnMouseMove che gestisce l'evento document.onmousemove mi dà valore alle variabili Sx e Hi, che sono le coordinate dell'angolo superiore sinistro dell'oggetto, ossia i lati sinistro e superiore del quadrato che costituisce l'oggetto.
Il codice, ovviamente, non muove minimamente l'oggetto.
Ora definiamo anche le coordinate degli altri lati, chiamiamole Dx e Lo.
var Sx,Hi,Dx,Lo;E creiamo delle funzioni che le calcolino in relazione alla larghezza e all'altezza dell'oggetto.
function Dx(){ return (Sx+oggetto.width); } function Lo(){ return (Hi+oggetto.height); }Ecco.
La funzione OnMouseMove adesso ha questo aspetto:
function OnMouseMove(){ Sx=BaseX+event.clientX-MouseX; Hi=BaseY+event.clientY-MouseY; }Proviamo a muovere l'oggetto...
che ovviamente non si muove.
Adesso concretizziamo le misure prese:
function OnMouseMove(){
Sx=BaseX+event.clientX-MouseX;
Hi=BaseY+event.clientY-MouseY;
oggetto.style.left=Sx+"px";
oggetto.style.top=Hi+"px";
}
e l'oggetto, come per incanto, si muove.
Ecco, adesso forse sarà più facile...
Nessun commento:
Posta un commento