fastclick的介紹和使用

移動(dòng)端點(diǎn)擊延遲事件?

1.?移動(dòng)端瀏覽器在派發(fā)點(diǎn)擊事件的時(shí)候,通常會(huì)出現(xiàn)300ms左右的延遲

2.?原因: 移動(dòng)端的雙擊會(huì)縮放導(dǎo)致click判斷延遲


解決方式

1. 禁用縮放

? ?`<meta name = "viewport" content="user-scalable=no" > `

? ? 缺點(diǎn): 網(wǎng)頁(yè)無(wú)法縮放

2.?更改默認(rèn)視口寬度

? ? `<meta name="viewport" content="width=device-width">`

? ??缺點(diǎn): 需要瀏覽器的支持

3.?css touch-action

? ??touch-action的默為 auto,將其置為 none 即可移除目標(biāo)元素的 300 毫秒延遲

? ? 缺點(diǎn): 新屬性,可能存在瀏覽器兼容問(wèn)題

4.?tap事件

? ??zepto的tap事件, 利用touchstart和touchend來(lái)模擬click事件

? ??缺點(diǎn): 點(diǎn)擊穿透

5.?fastclick

? ??原理: 在檢測(cè)到touchend事件的時(shí)候,會(huì)通過(guò)DOM自定義事件立即出發(fā)模擬一個(gè)click事件,并把瀏覽器在300ms之后真正的click事件阻止掉

? ??缺點(diǎn): 腳本相對(duì)較大

????使用:

? ? ```JS

????// 引入

? ?<script type='application/javascript' src='/path/to/fastclick.js'></script>

? ? // 使用了jquery的時(shí)候

? ? $(function() {

? ? ? ? FastClick.attach(document.body);

? ? });

? ? // 沒(méi)使用jquery的時(shí)候

? ? if ('addEventListener' in document) {

? ? ? ? document.addEventListener('DOMContentLoaded', function() {

? ? ? ? ? ? FastClick.attach(document.body);

? ? ? ? }, false);

? ? }

? ? ```

? ??在vue中使用

????```js

? ??// 安裝

? ? npm install fastclick -S

? ? // 引入

? ? import FastClick from 'fastclick'

? ? // 使用

? ? FastClick.attach(document.body);

? ? ```


* 注: 本文章僅供參考

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容