異常描述:
ios系統手機中訪問h5頁面,按鈕點擊有延遲,連續點擊卡頓、無反應。
異常原因:
這要追溯至 2007 年初。蘋果公司在發布首款 iPhone 前夕,遇到一個問題:當時的網站都是為大屏幕設備所設計的。於是蘋果的工程師們做了一些約定,應對 iPhone 這種小屏幕瀏覽桌面端站點的問題。這當中最出名的,當屬雙擊縮放(double tap to zoom),這也是會有上述 300 毫秒延遲的主要原因。雙擊縮放,顧名思義,即用手指在屏幕上快速點擊兩次,iOS 自帶的 Safari 瀏覽器會將網頁縮放至原始比例。
解決方法:
簡單粗暴型——禁用頁面縮放,設置 user-scalable=no。經驗證,這種方法不兼容ios低版本手機,如iphone4/5等。
<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1,user-scalable=no">
第三方插件——FastClick,完美兼容主流版本ios系統手機。
html頁面中直接使用:
<script src="https://cdn.bootcss.com/fastclick/1.0.6/fastclick.js"></script> <script> window.onload=function(){ FastClick.attach(document.body) } </script>
vue項目中使用:
#安裝fastclick組件 npm install fastclick --save-dev
#引入FastClick import FastClick from 'fastclick' //在created或monted生命周期中將FastClick綁定到body FastClick.attach(document.body)
