我正在尝试学习如何在浏览器中使用touchmove
event来检测多点触控手势。当捕捉到touchmove事件时,我可以获得当前触摸点的列表。然而,这对于检测手势并不是非常有用。我想了解触摸事件的历史。例如,我想获得每个当前不同触摸点之前的最后10个触摸点(如果可用)的列表。我绘制了下图,试图想象我的目标:
正如我在这种场景中所说的那样,用户在屏幕上以两种不同的模式(不同手的手指)拖动两个单独的手指,我在touchmove
事件中只收到两个触摸点。是否有可能在到达 A 和 B 之前访问两个点中每个点的历史记录?
以下是捕获touchmove
事件的相关代码:
document.addEventListener('touchmove', touchMove, false);
function touchMove(e) {
console.log("length is: ", e.touches.length);
e.preventDefault();
}
请不要建议第三方库 - 我的目标是学习如何定义和检测我自己的自定义真正多点触控手势。
答案 0 :(得分:1)
是的,您可以将先前的位置存储在数组中并迭代它们。
touchstart
事件touchmove
事件的内部,将当前坐标作为对象推送到每个数组,通过identifier
对象的Touch
属性进行标识。在推入阵列后,您可以访问pageX
切片(-10)`中可用的pageY
对象的Touch
和event.targetTouches. To only store 10, call
属性坐标。< / LI>
醇>