如何在 IE 11 中检测指针事件的手指计数

Posted

技术标签:

【中文标题】如何在 IE 11 中检测指针事件的手指计数【英文标题】:How to detect finger count on pointer events in IE 11 【发布时间】:2015-01-06 19:25:45 【问题描述】:

我已经为画布对象实现了指针事件。我需要知道我们如何检测触摸事件的手指计数。这是我的一段代码:

canvasObj.addEventListener( 'pointerenter', mouseEnterCall, false );
canvasObj.addEventListener( 'pointerdown',  mouseDownCall,  false );
canvasObj.addEventListener( 'pointermove',  mouseMoveCall,  false );
canvasObj.addEventListener( 'pointerup',    mouseUpCall,    false );
canvasObj.addEventListener( 'pointerout',   mouseOutCall,   false );

感谢您的帮助。

【问题讨论】:

这是一段代码。 canvasObj.addEventListener('pointerenter', mouseEnterCall, false); canvasObj.addEventListener('pointerdown', mouseDownCall, false); canvasObj.addEventListener('pointermove', mouseMoveCall, false); canvasObj.addEventListener('pointerup', mouseUpCall, false); canvasObj.addEventListener('pointerout', mouseOutCall, false); 很抱歉给您带来了困惑。我正在尝试使用上述模型检测 IE11 浏览器上的手指计数。有可能还是有其他方法? 我想我在这里找到了答案。 ***.com/questions/15811694/… 【参考方案1】:

没有内置属性可以为您提供屏幕上当前手指(活动指针)的数量。但这里有一些简单的代码可以实现这一点:

var pointerCount = 0; //Stores current number of "active pointers"
window.addEventListener("pointerdown", addPointer, true); 
window.addEventListener("pointerup", removePointer, true); 
window.addEventListener("pointercancel", removePointer, true);
function addPointer(e)  pointerCount++  
function removePointer(e)  pointerCount-- 

您可以修改 addPointer 以仅计算触摸指针,如果这是您想要的:

function addPointer(e)  if (e.pointerType === "touch") pointerCount++  

请注意,如果您还想支持 IE10,则需要稍微修改此代码,IE10 具有标准的较早(前缀)版本。

【讨论】:

以上是关于如何在 IE 11 中检测指针事件的手指计数的主要内容,如果未能解决你的问题,请参考以下文章

基于 OpenCV 的手掌检测和手指计数

指针事件 IE11/Surface

PointerEvents:检测“通过”元素的触摸

您如何检测没有移动或持续时间的 SwiftUI touchDown 事件?

如何检测“长按”

如何在 Asp.net 中使用 javascript 检测 IE 11