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

How to detect finger count on pointer events in IE 11

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

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 );

感谢您的帮助。

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

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 具有较早的(带前缀的)标准版本。