触摸拖动画布时滚动页面

时间:2014-12-29 13:31:31

标签: javascript mobile canvas

我有一个HTML5画布,用户通过点击(或点按)进行交互。

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

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

这可以按预期工作。但是,在移动设备上,如果点击并拖动,则会在点击开始时点击一下(这是有道理的,因为它已连接到touchstart)。当您在画布外触摸拖动时,页面不会像通常那样滚动。

拖动时,我希望忽略点按,而整个页面会滚动

1 个答案:

答案 0 :(得分:0)

我能够通过以下方式解决这个问题:

  • 删除e.preventDefault();
  • 挂钩canvas[0].onselectstart = function () { return false; }以防止在双击画布时选择文本(这是e.preventDefault()首先做的事情)
  • touchstart
  • 替换touchend