2012-01-19 14 views
9

He estado buscando ejemplos/tutoriales de arrastrar y soltar para HTML5, pero todos ellos hasta el momento implican un objeto que se desvanece a medida que se arrastra y sin estar restringido a ningún eje. Me preguntaba si es posible hacer que se arrastre el objeto real en lugar de un fantasma y si puedo restringirlo al eje X o Y.HTML5: ¿Arrastrar/soltar en el eje X y sin fundido?

Gracias!

Respuesta

17

Sí, fácilmente, escribiéndolo usted mismo.

elem.onmousedown = function(e) { 
    e = e || window.event; 
    var start = 0, diff = 0; 
    if(e.pageX) start = e.pageX; 
    else if(e.clientX) start = e.clientX; 

    elem.style.position = 'relative'; 
    document.body.onmousemove = function(e) { 
     e = e || window.event; 
     var end = 0; 
     if(e.pageX) end = e.pageX; 
     else if(e.clientX) end = e.clientX; 

     diff = end-start; 
     elem.style.left = diff+"px"; 
    }; 
    document.body.onmouseup = function() { 
     // do something with the action here 
     // elem has been moved by diff pixels in the X axis 
     elem.style.position = 'static'; 
     document.body.onmousemove = document.body.onmouseup = null; 
    }; 
} 
+0

Wow awesome! ¡Muchas gracias! – Sam

+0

Parece que 'evt' debería ser' e'? Como en 'evt.pageX' y' evt.clientX'. – bloodyKnuckles

+2

Por ejemplo: https://jsfiddle.net/BloodyKnuckles/jubdc68s/ – bloodyKnuckles

Cuestiones relacionadas