Android 4.0中的HTML5 Canvas onmousedown事件ICS奇怪的行为

时间:2012-06-25 01:50:54

标签: android html5 html5-canvas onmousedown

我有一个基本的HTML绘图应用程序,使用jQuery lib Sketch.js(使用< canvas>,在所有桌面浏览器上的IE,Opera,Chrome,Firefox上运行得非常好。在Opera Mobile上运行正常,Chrome Mobile,Firefox Mobile,Dolphin HD,Android股票浏览器2.2.4。

但是当我在平板电脑或手机上的Android 4.0股票浏览器上进行测试时,当我按下<画布>元素,框以蓝色突出显示,触摸事件在中心开始,无论手指实际位于何处,然后它返回并跟踪正常的手指。显然,每次触摸元素时,都会在特定浏览器上绘制不需要的行。

为了进行测试,我尝试禁用sketch.js,并使用警报创建了一个通用的onmousedown事件。当发生这种情况时,整个画布再次以蓝色突出显示,我想会发生相同的行为。当我访问Sketch.js网站时,会发生完全相同的行为......

这种行为是否有任何已知的解决方法?或者是否有Sketch.js的替代品没有出现此行为? (我想所有< canvas>元素与onmousedown事件完全相同)

为了完整性,这是HTML + JS:

<canvas  style="border:1pt solid black;margin:auto;cursor:crosshair;clear:both;"  width="450px" height="200px" id="colors_sketch" ></canvas>
<script type="text/javascript">
   $(function() {
        $('#colors_sketch').sketch();
    });
</script>

1 个答案:

答案 0 :(得分:1)

出于某种原因,即使在触摸屏中,浏览器也会出现鼠标事件。

要解决此问题,只需在ontouchstart事件中将mousedown,mouseup,mousemove事件设置为undefined。