2014-12-29 147 views
0

我有一個HTML5畫布,用戶通過點擊(或點擊)與之交互。拖動畫布時滾動頁面

$(function() { 
    var canvas = $('#annotations'); 
    canvas[0].addEventListener('mousedown', clickCanvas); 
    canvas[0].addEventListener('touchstart', clickCanvas); 
}); 

function clickCanvas(e) { 
    markLocation(e); 
    drawCanvas(); 
    e.preventDefault(); 
} 

這按預期工作。但是,如果您在移動設備上點擊並拖動此寄存器,請在點擊開始的位置單擊(這很有意義,因爲它已連接到touchstart)。當您在畫布外部進行觸摸拖動時,頁面不會像通常那樣進行滾動。

拖動時,我想輕按忽略,整個頁面滾動而不是

回答

0

我能夠來解決此問題:

  • 刪除e.preventDefault();
  • 掛鉤canvas[0].onselectstart = function() { return false; }防止文本被選中時,畫布是雙擊(這是擺在首位什麼e.preventDefault()所做的那樣)
  • 替換touchstarttouchend