HTML在移動端頁面設計是touch事件注意事項

HTML在移動端頁面設計是touch事件注意事項

移動端touch事件web

當用戶手指放在移動設備在屏幕上滑動會觸發的touch事件
•touchstart——當手指觸碰屏幕時候發生。無論當前有多少隻手指
•touchmove——當手指在屏幕上滑動時連續觸發。一般咱們再滑屏頁面,會調用event的preventDefault()能夠阻止默認狀況的發生:阻止頁面滾動
•touchend——當手指離開屏幕時觸發
•touchcancel——系統中止跟蹤觸摸時候會觸發。例如在觸摸過程當中忽然頁面alert()一個提示框,此時會觸發該事件,這個事件比較少用瀏覽器

移動端click屏幕產生200-300 ms的延遲響應iphone

移動設備上的web網頁是有300ms延遲的,玩玩會形成按鈕點擊延遲甚至是點擊失效。函數

如下是歷史緣由,來源一個公司內一個同事的分享:字體

2007年蘋果發佈首款iphone上iOS系統搭載的safari爲了將適用於PC端上大屏幕的網頁能比較好的展現在手機端上,使用了雙擊縮放(double tap to zoom)的方案,好比你在手機上用瀏覽器打開一個PC上的網頁,你可能在看到頁面內容雖然能夠撐滿整個屏幕,可是字體、圖片都很小看不清,此時能夠快速雙擊屏幕上的某一部分,你就能看清該部分放大後的內容,再次雙擊後能回到原始狀態。.net

雙擊縮放是指用手指在屏幕上快速點擊兩次,iOS 自帶的 Safari 瀏覽器會將網頁縮放至原始比例。設計

緣由就出在瀏覽器須要如何判斷快速點擊上,當用戶在屏幕上單擊某一個元素時候,例如跳轉連接<a href="#"></a>,此處瀏覽器會先捕獲該次單擊,但瀏覽器不能決定用戶是單純要點擊連接仍是要雙擊該部分區域進行縮放操做,因此,捕獲第一次單擊後,瀏覽器會先Hold一段時間t,若是在t時間區間裏用戶未進行下一次點擊,則瀏覽器會作單擊跳轉連接的處理,若是t時間裏用戶進行了第二次單擊操做,則瀏覽器會禁止跳轉,轉而進行對該部分區域頁面的縮放操做。那麼這個時間區間t有多少呢?在IOS safari下,大概爲300毫秒。這就是延遲的由來。形成的後果用戶純粹單擊頁面,頁面須要過一段時間才響應,給用戶慢體驗感受,對於web開發者來講是,頁面js捕獲click事件的回調函數處理,須要300ms後才生效,也就間接致使影響其餘業務邏輯的處理。事件

 

解決方案:

•fastclick能夠解決在手機上點擊事件的300ms延遲
•zepto的touch模塊,tap事件也是爲了解決在click的延遲問題圖片

觸摸事件的響應順序ip

一、ontouchstart 
二、ontouchmove 
三、ontouchend 
四、onclick

解決300ms延遲的問題,也能夠經過綁定ontouchstart事件,加快對事件的響應

相關文章
相關標籤/搜索