Cách tiếp cận đơn giản nhất là sử dụng thư viện JavaScript đa điểm như Hammer.js . Sau đó, bạn có thể viết mã như:
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
});
Và bạn có thể tiếp tục đi. Nó hỗ trợ chạm, chạm đúp, vuốt, giữ, biến đổi (tức là chụm) và kéo. Các sự kiện chạm cũng kích hoạt khi các hành động chuột tương đương xảy ra, vì vậy bạn không cần phải viết hai bộ xử lý sự kiện. Ồ, và bạn cần plugin jQuery nếu bạn muốn có thể viết theo cách jQueryish như tôi đã làm.