一、支持webkit的touch事件


pc上的web页面鼠标会产生 iphone、ipod  Touch、ipad上的web页面触屏时会产生ontouchstart、ontouchmove、ontouchend、ontouchcancel 事件,分别对应了触屏开始、拖拽及完成触屏事件和取消。


1、touchstart——当手指触碰屏幕时候发生。不管当前有多少只手指

2、touchmove——当手指在屏幕上滑动时连续触发。通常我们再滑屏页面,会调用event的preventDefault()可以阻止默认情况的发生:阻止页面滚动

3、touchend——当手指离开屏幕时触发

4、touchcancel——系统停止跟踪触摸时候会触发。例如在触摸过程中突然页面alert()一个提示框,此时会触发该事件,这个事件比较少用

 



二、每个触摸事件都包括了三个触摸列表


1、touches:当前位于屏幕上的所有手指的一个列表。

2、 targetTouches:位于当前DOM元素上的手指的一个列表。

3、changedTouches:涉及当前事件的手指的一个列表。

 



三、这些列表由包含了触摸信息的对象组成


1、 identifier:一个数值,唯一标识触摸会话(touch session)中的当前手指。
2、target:DOM元素,是动作所针对的目标。
3、客户/页面/屏幕坐标:动作在屏幕上发生的位置。
4、半径坐标和 rotationAngle:画出大约相当于手指形状的椭圆形。

 



四、Touch事件与Mouse事件的关系

 

在触屏操作后,手指提起的一刹那(即发生ontouchend后),系统会判断接收到事件的element的内容是否被改变,如果内容被改变,接下来的事件都不会触发,如果没有改变,会按照mousedown,mouseup,click的顺序触发事件。特别需要提到的是,只有再触发一个触屏事件时,才会触发上一个事件的mouseout事件。

 



五、支持winphone 8的touch事件


1、MSPointerDown——当手指触碰屏幕时候发生。不管当前有多少只手指

2、MSPointerMove——当手指在屏幕上滑动时连续触发。通常我们再滑屏页面,会调用css的html{-ms-touch-action: none;}可以阻止默认情况的发生:阻止页面滚动

3、MSPointerUp——当手指离开屏幕时触发




参考资料:  移动端touch事件   http://www.studyofnet.com/news/849.html