画布鼠标指针未同步
canvas mouse pointer not synced
我目前正在学习画布触摸事件功能,我想在框中画线,但绘图没有与鼠标指针同步,请帮忙检查我的代码并指出我犯的错误。 谢谢!
这是编码
<!DOCTYPE html>
<html><head>
<style>
#contain {
width: 500px;
height: 120px;
top : 15px;
margin: 0 auto;
position: relative;
}
</style>
<script>
var canvas;
var ctx;
var lastPt=null;
var letsdraw = false;
function init() {
var touchzone = document.getElementById("layer1");
touchzone.addEventListener("touchmove", draw, false);
touchzone.addEventListener("touchend", end, false);
ctx = touchzone.getContext("2d");
}
function draw(e) {
e.preventDefault();
if(lastPt!=null) {
ctx.beginPath();
ctx.moveTo(lastPt.x, lastPt.y);
ctx.lineTo(e.touches[0].pageX, e.touches[0].pageY);
ctx.stroke();
}
lastPt = {x:e.touches[0].pageX, y:e.touches[0].pageY};
}
function end(e) {
var touchzone = document.getElementById("layer1");
e.preventDefault();
// Terminate touch path
lastPt=null;
}
function clear_canvas_width ()
{
var s = document.getElementById ("layer1");
var w = s.width;
s.width = 10;
s.width = w;
}
</script>
</head>
<body onload="init()">
<div id="contain">
<canvas id="layer1" width="450" height="440"
style="position: absolute; left: 0; top: 0;z-index:0; border: 1px solid #ccc;"></canvas>
</div>
</body>
</html>
如注释中的建议,请尝试使用偏移量。(演示)
如果您有 chrome,请转到开发者选项卡 -> 设置->覆盖 ->启用触摸事件以测试上述演示小提琴中的触摸事件。
var canvas;
var ctx;
var lastPt = null;
var letsdraw = false;
var offX = 10, offY = 20;
function init() {
var touchzone = document.getElementById("layer1");
touchzone.addEventListener("touchmove", draw, false);
touchzone.addEventListener("touchend", end, false);
ctx = touchzone.getContext("2d");
}
function draw(e) {
e.preventDefault();
if (lastPt != null) {
ctx.beginPath();
ctx.moveTo(lastPt.x, lastPt.y);
ctx.lineTo(e.touches[0].pageX - offX,
e.touches[0].pageY - offY);
ctx.stroke();
}
lastPt = {
x: e.touches[0].pageX - offX,
y: e.touches[0].pageY - offY
};
}
function end(e) {
var touchzone = document.getElementById("layer1");
e.preventDefault();
// Terminate touch path
lastPt = null;
}
function clear_canvas_width() {
var s = document.getElementById("layer1");
var w = s.width;
s.width = 10;
s.width = w;
}
相关文章:
- javascript中的鼠标指针实时
- 鼠标指针和鼠标左键闪烁
- Jquery:当鼠标指针进入和离开元素时,创建一个弹出窗口
- 单击时更改鼠标指针,释放时返回
- 当用户将鼠标指针放在窗体按钮上时,该按钮必须更改颜色
- 为什么不起作用?用鼠标指针推框
- 如何修复鼠标指针的问题
- 在鼠标指针下获取单词
- 如何使用javascript加载页面时将鼠标指针移动到页面顶部
- Sikuli可以观察到鼠标指针的变化吗?(响应式鼠标与无响应鼠标)
- 当鼠标指针放在图形区域内时,实时图形将停止
- 画布鼠标指针未同步
- 草图.js - 画笔从鼠标指针下方开始
- 在鼠标(指针设备)未处于活动状态(不移动)时隐藏按钮
- 当页面加载后鼠标指针已悬停时触发鼠标悬停
- 如何使用JavaScript移动鼠标指针
- 鼠标指针在拖动事件中一直闪烁
- 在javascript中使box边缘跟随鼠标指针
- 鼠标指针停止前进滑块中的幻灯片转换
- 鼠标指针脚本