如何使此应用程序与移动浏览器协同工作
How is it possible to make this app working with mobile browsers?
我正在开发一个使用HTML 5 Canvas绘图的应用程序,问题是它在像下图这样的计算机浏览器上运行良好http://s28.postimg.org/z0ytnva98/problem.jpg
我想让它在移动浏览器上工作(别介意两者都工作,移动浏览器就是我想要的)。我的代码中关于Java Script事件的问题。我把它改成
canvas.addEventListener('touchstart' , engage);
canvas.addEventListener('touchmove', putpoint);
canvas.addEventListener('touchend' , disengage);
但没用,我也试过
canvas.addEventListener('touchstart' , engage);
canvas.addEventListener('touchmove', putpoint);
canvas.addEventListener('touchleave' , disengage);
也不起作用。当我把它留给它的时候,就像这个一样
canvas.addEventListener('mousedown' , engage);
canvas.addEventListener('mousemove', putpoint);
canvas.addEventListener('mouseup' , disengage);
就像这张照片一样http://s14.postimg.org/tadk87jpt/Screenshot_2015_02_15_20_16_32.png
这是我的代码
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Drawing app</title>
<body style="overflow: hidden">
<canvas id="canvas" style="width:100% ; height:100%">
Your browser does not support canvas element.
</canvas>
<script>
var canvas = document.getElementById('canvas'),
context = canvas.getContext('2d'),
radius = 20,
dragging = false;
canvas.width = window.innerWidth;
canvas.height = window.innerHeight;
context.lineWidth = radius*2;
var putpoint = function(e){
if(dragging){
context.lineTo(e.clientX, e.clientY);
context.stroke();
context.beginPath();
context.arc(e.clientX, e.clientY, radius, 0, Math.PI*2);
context.fill();
context.beginPath();
context.moveTo(e.clientX, e.clientY);
}
};
var engage = function(e){
dragging = true;
putpoint(e);
};
var disengage = function(){
dragging = false;
context.beginPath();
};
canvas.addEventListener('mousedown' , engage);
canvas.addEventListener('mousemove', putpoint);
canvas.addEventListener('mouseup' , disengage);
</script>
MDN对不同触摸事件的描述似乎是在构建一个演示来做你想做的事情。看看他们在解决方案中做了什么。
相关文章:
- 如何使用modalDialog来显示可以在所有浏览器中工作的弹出窗口
- AngularJS指令意外地协同工作
- 如何隐藏空<span>在IE中使用javascript.(注意,在其他浏览器中工作正常)
- Javascript字母选择没有'我不能在谷歌浏览器上工作
- 我如何使HTML5<输入类型=月份>以在所有浏览器上工作
- 我的时间倒计时脚本在谷歌浏览器中工作正常,但在其他浏览器中打开时它显示为南楠
- Json到CSV下载,可以在chrome中工作,但不能在IE浏览器中工作
- 有没有人能够得到这个要求或调试NPM模块在浏览器中工作
- 为什么不是't my css `content:`在多个浏览器中工作,并总体上提高跨浏览器兼容性
- 无法从IE中的data.responseText获取结果,但在其他浏览器中工作
- 安卓版本的代码不像桌面互联网浏览器那样工作
- 让两个 jquery 脚本像它们应该的那样协同工作
- 数据表 + 列搜索 + 整体搜索协同工作 + 服务器端处理
- Rcharts 和 D3 图不能协同工作
- 如何让、要求和原型协同工作以在 javascript 中制作对象
- react如何与修改html的javascript ui组件协同工作
- toLocaleString()不会'无法在Safari浏览器中工作
- 索引在IE中导致错误;在其他浏览器中工作
- 使用jQuery在焦点上选择文本框是't在移动浏览器中工作
- 如何使此应用程序与移动浏览器协同工作