Safari 为 iOS 定制了一些专有事件,以方便开发者。因为 iOS 设备没有鼠标和键盘,所以常规的鼠 标和键盘事件不足以创建具有完整交互能力的网页。同时,WebKit 也为 Android 定制了很多专有事件, 成为了事实标准,并被纳入 W3C 的 Touch Events 规范。此事件只适用于触屏设备。
iPhone 3G 发布时,iOS 2.0 内置了新版本的 Safari。这个新的移动 Safari 支持一些与触摸交互有关的 新事件。后来的 Android 浏览器也实现了同样的事件。当手指放在屏幕上、在屏幕上滑动或从屏幕移开 时,触摸事件即会触发。触摸事件有如下几种。
- touchstart : 手指放到屏幕上时触发(iphone手指轻点触发亮屏)
 - touchmove  : 手指在屏幕上滑动时连续触发,此事件可以被
preventDefault()阻止 - touchend : 手指从屏幕上移开时触发
 - touchcancel : 系统停止跟踪触摸时触发。文档中并未明确什么情况下停止跟踪!
 
这些事件都会冒泡,也都可以被取消。尽管触摸事件不属于 DOM 规范,但浏览器仍然以兼容 DOM 的方式实现了它们。因此,每个触摸事件的 event 对象都提供了鼠标事件的公共属性:
- bubbles
 - cancelable
 - view
 - clientX
 - clientY
 - screenX
 - screenY
 - detail
 - altKey
 - shiftKey
 - ctrlKey
 - metaKey
 
除了这些公共的 DOM 属性,触摸事件还提供了以下 3 个属性用于跟踪触点。
- touches: Touch对象的数组,表示当前屏幕上的每个触点
 - targetTouches: Touch对象的数组,表示特定事件目标的触点
 - changedTouches :Touch对象的数组,表示自上次用户动作之后变化的触点
 
每个Touch对象都包含下列属性
- clientX :触点在视口的x坐标
 - clientY :触点在视口中的y坐标
 - identifier :触点ID
 - pageX:触点在页面上的x坐标
 - pagey :触点在页面上的y坐标
 - screenX:触点在屏幕上的x坐标
 - screenY:触点在屏幕上的y坐标
 - target:触摸事件的事件目标
 
