Ciao
Ho tre programmi (in VBSript) che usano il drag & drop
Devo riscriverli in Javascript ma ci sono delle istruzioni che non so tradurre e allora ho cercato in rete degli esempi di drag & drop in javascript. Ne ho trovati tanti e alla fine uno di questi mi sembrava il più semplice e adatto ai miei bisogni. Si tratta di un rettangolo colorato che si sposta col mouse, ma nei miei programmi le immagini da spostare sono di più, quindi ho inserito altri rettangoli in posizioni orizzontali diverse (left) e posizioni verticali uguali (top)
Ed ecco i problemi:
I tre rettangoli sono visualizzati in diverse posizioni left ma anche in diverse posizioni top.
Credo che a spostarli sia lo script anche se non capisco quale function lo fa.
Poi spostando i rettangoli col mouse il primo lo sposta regolarmente, il secondo, al primo accenno di movimento si abbassa di un centinaio di pixel e il terzo si abbassa molto di più.
Perché?
rudyF
Ecco il listato:
codice HTML:<!DOCTYPE html> <html lang="it"> <head> <meta charset="utf-8"> <meta http-equiv="imagetoolbar" content="no"> <STYLE type="text/css"> body {background:#CCEEFF;} .qdr{width:200px; height:100px; cursor:move; position:relative; padding:10px;} </STYLE> <BODY onload="InizializzaMov()"> <DIV id="box1" class="qdr" style="left:50px; top:60px; z-index: 5; background-color: #ff0000;" onmousedown="MuoviOggetto(this);"></DIV> <DIV id="box2" class="qdr" style="left:450px; top:60px; z-index: 5; background-color: #0000ff;" onmousedown="MuoviOggetto(this);"></DIV> <DIV id="box3" class="qdr" style="left:850px; top:60px; z-index: 5; background-color: #00ff00;" onmousedown="MuoviOggetto(this);"></DIV> <SCRIPT type="text/javascript"> oggetto = null; //Inizializzo l'oggetto da spostare mouse_x = 0; //Le due variabili che archiviano la posizione cursore mouse mouse_y = 0; ele_x = 0; //Le due variabili che archiviano la posizione dell'elemento ele_y = 0; function InizializzaMov() { //Collega le due funzioni muovi e ferma document.onmousemove = Muovi; document.onmouseup = Ferma; } function Ferma() { //Distrugge l'oggetto quando siamo fermi oggetto = null; } function Muovi(e) { //Funzione principale, che è responsabile dello spostamento dell'elemento mouse_x = document.all ? window.event.clientX : e.pageX; mouse_y = document.all ? window.event.clientY : e.pageY; if(oggetto != null) { oggetto.style.left = (mouse_x - ele_x) + "px"; oggetto.style.top = (mouse_y - ele_y) + "px"; } } function MuoviOggetto(ele){ //Viene richiamata quando comincio a spostare l'oggetto oggetto = ele; //memorizzo i valori dell'elemento che deve essere spostato ele_x = mouse_x - oggetto.offsetLeft; ele_y = mouse_y - oggetto.offsetTop; } </SCRIPT> </BODY> </HTML>

Rispondi quotando