2010-03-13 8 views
15

¿Cómo se determinan las coordenadas (x, y) mientras se arrastra "dragover" y después de la caída ("drop") en HTML5 DnD?HTML5: dragover(), drop(): cómo obtener las coordenadas x, y actuales?

Encontré una página web que describe x, y para dragover (mira e.offsetX y e.layerX para ver si están configurados para varios navegadores pero para mi vida NO están configurados).

¿Qué se usa para la función de soltar (e) para averiguar DÓNDE en el destino actual se cayó realmente?

Estoy escribiendo una aplicación de diseño de circuitos en línea y mi objetivo de soltar es grande.

¿Debo dejar caer al nivel del mouse para averiguar x, y o HTML5 proporciona una abstracción de nivel superior?

Respuesta

19

Las propiedades clientXclientY y se debe establecer (en los navegadores modernos):

function drag_over(event) { 
    console.log(event.clientX); 
    console.log(event.clientY); 
    event.preventDefault(); 
    return false; 
} 
function drop(event) { 
    console.log(event.clientX); 
    console.log(event.clientY); 
    event.preventDefault(); 
    return false; 
} 

Here's a (somewhat) practical example que funciona en Firefox y Chrome.

+0

Gracias por la demostración. ¿Sabes por qué en Safari y Chrome cuando el texto se cae, no permanece exactamente en la misma posición? El elemento arrastrado se desplaza unos pocos píxeles. – Charles

+0

@Charles Lo probé en Chrome (en Windows) y no lo veo, si averigua de qué se trata, hágamelo saber. – robertc

Cuestiones relacionadas