El enfoque más simple es utilizar un multitouch JavaScript library like Hammer.js. A continuación, puede escribir el código como:
canvas
.hammer({prevent_default: true})
.bind('doubletap', function(e) { // And double click
// Zoom-in
})
.bind('dragstart', function(e) { // And mousedown
// Get ready to drag
})
.bind('drag', function(e) { // And mousemove when mousedown
// Pan the image
})
.bind('dragend', function(e) { // And mouseup
// Finish the drag
});
Y puede seguir adelante. Es compatible con tocar, tocar dos veces, deslizar, mantener, transformar (es decir, pellizcar) y arrastrar. Los eventos táctiles también se activan cuando ocurren acciones de mouse equivalentes, por lo que no es necesario escribir dos conjuntos de controladores de eventos. Ah, y necesitas el plugin jQuery si quieres poder escribir en la forma jQuery como yo lo hice.
Muchas gracias David, creo que funcionará, pero ¿qué es e.touches [0]? ¿Puedes describir el argumento "e" en detalle? –
e es el objeto de evento que se pasa automáticamente al controlador. Para el navegador safari (y también para Android) ahora contiene una matriz de todos los toques que el usuario ha realizado en la pantalla. Cada toque tiene sus propias propiedades (x, y coords, por ejemplo) –
Gracias David. esta bien, entendí. –