1. 程式人生 > >1.6.0 移除移動端點選事件延遲

1.6.0 移除移動端點選事件延遲

1.6.1 double tap to zoom

double tap to zoom (雙擊縮放)
當用戶點選螢幕以後,瀏覽器不能直接判斷使用者是點選操作,還是雙擊縮放,因此瀏覽器的做法是等待300ms來判斷使用者是進行了什麼操作。

互動的響應速度是移動端的使用者體驗的要素,專門的網站做過測試結果:互動超過100ms便認為是卡頓。

解決方案

關於解決方案網上有很多做法,總結幾種親測可用的方法。

  • 禁用縮放
  <meta name="viewport" content="user-scalable=no,initial-scale=1,maximun-scale=1"
/>

完全禁用縮放可以快速有效的解決這個問題

  • css touch-action
	div{
		touch-action:none|manipulation
	   }

如果需求要進行頁面縮放 又要解決這個問題我們可以給對應的元素加上touch-action屬性

FastClick.attach(document.body);

引入庫檔案之後只需要在頁面初始化事件中應用fastclick,便可以使用,解決方案的原始碼大致方案是:對頁面的document.body上綁定了click以及指標(touchstart,touchend,touchcancel)事件,當用戶觸發點選事件以後,會冒泡到document.body上,這裡做的事情有兩件:記錄下來事件併發送自定義click事件在控制元件上並觸發;阻止原來的點選事件。