參考github:https://github.com/ftlabs/fastclick。
1. 下載:npm install --save fastclick。
2. 引入:在main.js文件中:這樣就解決了在移動端body下元素點擊300ms延遲的問題
import fastclick from "fastclick"
fastclick.attach(document.body)
3. 原理:在檢測到touchend事件的時候,會通過DOM自定義事件立即出發模擬一個click事件,並把瀏覽器在300ms之後真正的click事件阻止掉。
4. 以下這幾種情況是不需要使用fastclick:
4.1、FastClick是不會對PC瀏覽器添加監聽事件。
4.2、Android版Chrome 32+瀏覽器,如果設置viewport meta的值爲width=device-width,這種情況下瀏覽器會馬上出發點擊事件,不會延遲300毫秒。
<meta name="viewport" content="width=device-width, initial-scale=1">
4.3、所有版本的Android Chrome瀏覽器,如果設置viewport meta的值有user-scalable=no,瀏覽器也是會馬上出發點擊事件。
4.4、IE11+瀏覽器設置了css的屬性touch-action: manipulation,它會在某些標籤(a,button等)禁止雙擊事件,IE10的爲-ms-touch-action: manipulation