在 Firefox 中“解析”触摸事件
"Parse" touch events in Firefox
我有一个演示,需要在Windows 7触摸平板电脑上运行Firefox。据此,Mozilla已经实现了标准化的触摸API。但是,这不适用于Windows 7平板电脑。这些事件都不会在FF 14中触发。
我们必须使用 MozTouchMove
事件。但它所做的只是调度顺序事件。WI.e. 手指一,然后手指二,然后手指三等。
甚至很难区分两根手指和一根手指。我必须测量更新之间的距离,将我自己的"ID"分配给每个"区域"。之后,要检测两根手指的拖动,我们必须确保解析始终保持不变 - 如果一根手指向上移动,则可能会"取消拖动",因为"第二个"位置被"第一个"位置覆盖。试图想出一种方法。有什么想法吗?
// multitouch event handler for two finger scrolling in x or y
function onTouchMove(event) {
var eventTouch = new point(event.clientX, event.clientY);
if (previousTouch.x == 0 && previousTouch.y == 0) {
previousTouch = new point(eventTouch.x, eventTouch.y);
return;
}
//filter really close touches
//in this case, assume single touch and defer to system mouse
if (previousTouch !== undefined) {
if (eventTouch.distance(previousTouch) < 6) {
return;
}
}
fingerIndex ++;
// only track every other touch to keep fingers consistent
if( fingerIndex % 2 == 0)
{
document.getElementById("finger1").style.left = previousTouch.x + "px";
document.getElementById("finger1").style.top = previousTouch.y + "px";
document.getElementById("finger2").style.left = eventTouch.x + "px";
document.getElementById("finger2").style.top = eventTouch.y + "px";
}
previousTouch = eventTouch;
}
您链接到的状态文档日期为 2010 年 7 月 - Mozilla 在两年前就很接近了。因此,您现在正在使用已弃用的单点触控 API 并尝试实现多点触控 - 这注定会变得丑陋。该文档实际上将您指向自 Firefox 12 以来可用的新多点触控 API。这使您可以正确区分触摸,并且文档实际上非常详细地解释了您将如何做到这一点。
相关文章:
- 谷歌地图劫持了iphone's滚动(触摸事件)-如何恢复
- 如何使用纯javascript的移动触摸事件
- 移动定时触摸事件
- 模拟html5的触摸事件
- Phonegap/Cordova:如何添加Javascript多点触摸事件
- 如何在AngularJS中监听点击事件,而不是触摸事件
- 我可以让我的网站的内容可编辑区域对安卓股票浏览器上的触摸事件更敏感吗
- 在 Firefox 中“解析”触摸事件
- 将触摸事件转换为鼠标事件仅每秒有效一次
- 在移动 Safari 上向下拖动时,触摸事件停止触发 - iPad HTML5
- 如何在 javascript 中触发触摸事件
- 为什么触摸事件不在手指按压的中间
- 如何启用离子多点触摸事件
- 当我将位置更改为绝对时,画布精灵表和触摸事件不起作用
- 当元素在事件绑定后附加到DOM时,触摸事件不起作用
- JavaScript的触摸事件
- Tizen可穿戴设备屏幕顶部的Javascript触摸事件
- 用标准javascript而不是jquery中的mousedown、mousemove和mouseup触摸事件句柄
- (窗口中的'ontouchstart')返回true,但没有触摸事件
- 传单触摸事件未触发