我有一个基本的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>
答案 0 :(得分:1)
出于某种原因,即使在触摸屏中,浏览器也会出现鼠标事件。
要解决此问题,只需在ontouchstart事件中将mousedown,mouseup,mousemove事件设置为undefined。