移動端 觸摸事件 ontouchstart、ontouchmove、ontouchend、ontouchcancel

來源 http://hi.baidu.com/study_sweet/item/fc6ac732a216dd8db711dba5web

一、Touch事件簡介
pc上的web頁面鼠 標會產生onmousedown、onmouseup、onmouseout、onmouseover、onmousemove的事件,可是在移動終端如 iphone、ipod  Touch、ipad上的web頁面觸屏時會產生ontouchstart、ontouchmove、ontouchend、ontouchcancel 事件,分別對應了觸屏開始、拖拽及完成觸屏事件和取消。
當按下手指時,觸發ontouchstart;
當移動手指時,觸發ontouchmove;
當移走手指時,觸發ontouchend。
當一些更高級別的事件發生的時候(如電話接入或者彈出信息)會取消當前的touch操做,即觸發ontouchcancel。通常會在ontouchcancel時暫停遊戲、存檔等操做。

二、Touch事件與Mouse事件的出發關係
在觸屏操做後,手指提起的一剎那(即發生ontouchend後),系統會判斷接收到事件的element的內容是否被改變,若是內容被改變,接下來的事 件都不會觸發,若是沒有改變,會按照mousedown,mouseup,click的順序觸發事件。特別須要提到的是,只有再觸發一個觸屏事件時,纔會 觸發上一個事件的mouseout事件。

三、gesture事件
Gesture事件,包括手指點擊(click),輕拂 (flick),雙擊(double-click),手指的分開、閉合(scale)、轉動(rotate)等一切手指能在屏幕上作的事情,它只在有兩根 或多根手指放在屏幕上的時候觸發,事件處理函數中會獲得一個GestureEvent類型的參數,它包含了手指的scale(兩根移動過程當中分開的比例) 信息和rotation(兩根手指間連線轉動的角度)信息。這個事件是對touch事件的更高層的封裝,和touch同樣,它一樣包括 gesturestart,gesturechange,gestureend。
gesture事件觸發過程:
Step 一、第一根手指放下,觸發touchstart
Step 二、第二根手指放下,觸發gesturestart
Step 三、觸發第二根手指的touchstart
Step 四、當即觸發gesturechange
Step 五、手指移動,持續觸發gesturechange,就像鼠標在屏幕上移動的時候不停觸發mousemove同樣
Step 六、第二根手指提起,觸發gestureend,之後將不會再觸發gesturechange
Step 七、觸發第二根手指的touchend
Step 八、觸發touchstart!注意,多根手指在屏幕上,提起一根,會刷新一次全局touch!從新觸發第一根手指的touchstart
Step 九、提起第一根手指,觸發touchendiphone

相關文章
相關標籤/搜索