Самый простой подход заключается в использовании мультитач-библиотеки JavaScript, такой как Hammer.js . Затем вы можете написать код:
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
});
И вы можете продолжать идти. Он поддерживает касание, двойное касание, пролистывание, удержание, преобразование (т.е. сжатие) и перетаскивание. События касания также запускаются, когда происходят эквивалентные действия мыши, поэтому вам не нужно писать два набора обработчиков событий. Да, и вам нужен плагин jQuery, если вы хотите иметь возможность писать в jQueryish, как я.