Ciao a tutti, sto cercando di fare un drag & drop di un div.
Il codice funziona, ma il problema è che se il div che cerco di spostare contiene un'immagine anzichè del testo, l'immagine viene evidenziata (penso sia un problema di focus) e viene un effetto orrendo nel dragging.
Qualcuno sa darmi una mano ???
L' html puro
codice:<div id="C" > <div id="M"> [img]mappa.gif[/img] </div> </div>
Lo stile CSS
codice:<style> #M { background-color: #EEEEEE; font: Normal 10px Verdana; width: 1600px; height: 800px; padding: 5px; border: Solid 1px #CCCCCC; cursor: Move; } #C { left:100px; top:100px; width:800px; height:600px; border: 3px solid green; background: red; overflow: hidden; /* overflow: visible; */ } </style>
Lo script:
codice:<script> var Giu = true; var L, T, X, Y; var Wm, Hm, Wc, Hc; function Coordinate() { if (event.srcElement.id == "M") { Giu = true; document.onmousemove = Muovi; L = document.getElementById("M").style.pixelLeft; T = document.getElementById("M").style.pixelTop; X = event.clientX; Y = event.clientY; Wm = document.getElementById("M").offsetWidth; Wc = document.getElementById("C").offsetWidth; Hm = document.getElementById("M").offsetHeight; Hc = document.getElementById("C").offsetHeight; } } function Muovi() { if (Giu) { var newL = L + event.clientX - X; if (newL <= 0 && newL >= -(Wm - Wc) ) document.getElementById("M").style.pixelLeft = newL; var newT = T + event.clientY - Y; if (newT <= 0 && newT >= -(Hm - Hc) ) document.getElementById("M").style.pixelTop = newT; } } function Su() { Giu = false; } document.onmousedown = Coordinate; document.onmouseup = Su; </script>

Rispondi quotando