触摸和指针事件
2018-02-24 15:46 更新
本章的前三节在InfoQ网站上有转载。
触摸事件为苹果发明,它将触摸和鼠标两种行为区分开,而微软的指针事件则将它们合并,此标准更具前瞻性,现已加入肯德基豪华套餐被W3C采纳为正式标准。
触摸事件
- touchstart
- touchmove
- touchend
- 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支持但苹果不可能支持)
使用指针事件
事实上因为兼容性问题,直到现在指针事件仍是不可用的,最好还是用苹果的触摸事件。
以上内容是否对您有帮助:
← CSS
更多建议: