触摸和指针事件

2018-02-24 15:46 更新

本章的前三节在InfoQ网站上有转载。

触摸事件为苹果发明,它将触摸和鼠标两种行为区分开,而微软的指针事件则将它们合并,此标准更具前瞻性,现已加入肯德基豪华套餐被W3C采纳为正式标准。

触摸事件

  1. touchstart
  2. touchmove
  3. touchend
  4. touchcancel (不太被使用)

手势事件:两个或多个触摸事件同时发生。仅Safari和IE支持,不建议使用。

实例

通过实例对比触摸、指针事件与鼠标键盘事件。

  • 下拉菜单。对于用mouseover的下拉菜单,触摸几乎不可用。
  • 拖拽。触摸和鼠标差不多,键盘难操作。
  • 滚动层。鼠标难操作。

指针事件

指针事件合并了触摸和鼠标操作,它的必要性在于有一些超极本、平板电脑(Surface系列)同时支持触摸和鼠标操作,并且需要在两者间进行无缝的切换。

  • pointerdown
  • pointermove
  • pointerup
  • pointerover
  • pointerout

触摸事件的级联

移动浏览器同时支持触摸事件和鼠标事件,会导致一个触摸动作触发多个事件。

  • 触摸(Tap):touchstart/pointerdown、touchend/pointerup、mouseover、mousemove、mousedown、mouseup、click、:hover样式(需要注意的是为了兼容mouseover,抬起手指并不会触发mouseout,再次触摸才会)
  • 滑动(Swipe):touchstart、touchmove、touchend、scroll
  • 缩放(Pinch):touchstart、touchmove、touchend、scroll,可能还有resize
  • 双触(double-tap):touchstart、两次touchend、scroll,可能还有resize
  • 按住(touchhold):touchstart、touchend,有些浏览器还有contextmenu

剖析click

300毫秒问题,无解。(Chrome支持但苹果不可能支持)

使用指针事件

事实上因为兼容性问题,直到现在指针事件仍是不可用的,最好还是用苹果的触摸事件。

以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号