pointer事件
微软提出的新的事件类型,任何由鼠标、触摸、手写笔或者其他输入设备在屏幕上触发的接触,都算是 pointer 事件。
目前只有 win10 上的 Edge 浏览器和 chrome55 以上支持,移动端浏览器尚未支持
1 事件种类
事件名称 | 作用 |
---|---|
pointerover | 与 mouseover 行为一致 |
pointerenter | 与 mouseenter 行为一致 |
pointerdown | 指针进入活动状态,比如触摸了屏幕,类似于 touchstart |
pointermove | 指针进行了移动 |
pointerup | 指针取消活动状态,比如手指离开了屏幕,类似于 touchend |
pointercancel | 类似于 touchcancel |
pointerout | 指针离开元素边缘或者离开屏幕,类似于 mouseout |
pointerleave | 类似于 mouseleave |
gotpointercapture | 元素捕获到指针事件时触发 |
lostpointercapture | 指针被释放时触发 |
2 pointerEvent 对象
它的 API 和鼠标事件很像,非常容易迁移。除了提供鼠标事件常用的属性,比如 clientX,target 等等,还提供了一些用于其他输入设备的属性,比如压力,接触面,倾斜角度等等
pointerEvent对象具有以下属性:
- pointerId:当前指针事件的唯一标识,主要是在多点触控时标识唯一的一个输入源
- width:接触面的宽度
- height:接触面的高度
- pressure:接触的压力值,范围是0-1,对于不支持压力的硬件,比如鼠标,按压时该值必须为 0.5,否则为 0
- tiltX,titltY:手写笔的角度
- pointerType:事件类型,目前有 mouse,pen,touch,如果是无法探测的指针类型,则该值为空字符串
- isPrimary:用于标识是否是主指针,主要是在多点触控中生效,开发者也可以通过忽略非主指针的指针事件来实现单点触控。