我知道如何在鼠标移动到画布区域时追踪鼠标移动。
var canvas = document.getElementById("canvas");
var info = document.getElementById("info");
function getMovements(e) {
info.innerHTML = "x change: " + String(e.movementX) + " , y change: " + String(e.movementY);
}
canvas.addEventListener("mousemove", getMovements);
canvas {
background-color:bisque;
}
<canvas id ="canvas" width=300, height=300></canvas>
<div id=info></div>
但是当e.movementX
和e.movementY
无法使用时,如何在canvas.addEventListener("touchmove", getMovements);
事件中实现相同的功能呢?
previousTouch = touch
行上开始调试。这个代码在你的机器上工作了吗?我只是用你的监听器替换了之前的监听器,是否做错了什么? - WhoAmIlet
可以被重新赋值...这是因为let
在当前作用域定义变量,而var
则提升到全局作用域。 - chad_previousTouch = touch;
处出现错误。请接受我的编辑,你的代码将会正常工作。我会将其标记为答案! - WhoAmIvar
只在声明它的 函数 范围内生效,不具备全局作用域。let
则是 块级别 作用域。 - ankr