Javascript 防止HTML5画布在Phonegap应用程序中的触摸/滑动事件上滚动整个页面?

Javascript 防止HTML5画布在Phonegap应用程序中的触摸/滑动事件上滚动整个页面?,javascript,canvas,touch,phonegap,dom-events,Javascript,Canvas,Touch,Phonegap,Dom Events,在我的phonegap应用程序中,我在长长的文本页面的末尾有一个使用画布的签名框,它可以垂直滚动,无论是iPhone还是iPad,还是方向。页面只是比视口的高度要高 问题是,当用户试图用手指在画布上签名而不是在画布上画画时,由于触摸滚动,当用户上下移动时,整个页面都会滚动 我怎样才能避免这种情况?以下是我迄今为止所做的工作。(注意画布宽度是基于视口动态指定的) HTML: <div id="canvas-container"> <canvas id="paintCanvas"

在我的phonegap应用程序中,我在长长的文本页面的末尾有一个使用画布的签名框,它可以垂直滚动,无论是iPhone还是iPad,还是方向。页面只是比视口的高度要高

问题是,当用户试图用手指在画布上签名而不是在画布上画画时,由于触摸滚动,当用户上下移动时,整个页面都会滚动

我怎样才能避免这种情况?以下是我迄今为止所做的工作。(注意画布宽度是基于视口动态指定的)

HTML:

<div id="canvas-container">
<canvas id="paintCanvas" width="600" height="158"></canvas>
</div>

我在iOS和Android上也有类似的行为。还有其他我需要参加的活动吗?我以为touchstart和touchmove就是我所需要的。有什么建议吗

回答我自己的问题-我放弃了这种方法,而是将基于画布的签名框放入由“添加签名”按钮触发的静态(不滚动)模式对话框中。这是一种黑客行为,但它为最终用户提供了一个签名框,当他们试图用手指签名时,签名框不会移动

var mycanvas = $("#paintCanvas");
mycanvas.addEventListener("touchstart",  function(event) {event.preventDefault()})
mycanvas.addEventListener("touchmove",   function(event) {event.preventDefault()})
mycanvas.addEventListener("touchend",    function(event) {event.preventDefault()})
mycanvas.addEventListener("touchcancel", function(event) {event.preventDefault()})