移动端点击事件300ms延迟的问题由来已久,如下截图

  

  下面截图来自原文:https://www.jianshu.com/p/6e2b68a93c88

 

  网上关于300ms延迟问题的解决方法,大致分为 3 种

  ①:使用 meta viewport 属性禁用缩放,并让视口宽度等于设备宽度

<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />

  

  ②:使用 touch-action:none;  这句代码的意思是 禁止触发默认的手势操作

    个人不推荐这个方法,之前写过一篇博客,因使用了该属性后踩的坑

    详见:https://www.cnblogs.com/tu-0718/p/7411907.html

   

  ③:使用FastClick.js库

      FastClick是专门为解决移动端浏览器 300 毫秒点击延迟问题所开发的一个轻量级的库。

      FastClick的实现原理是在检测到touchend事件的时候

    会通过DOM自定义事件立即出发模拟一个click事件,并把浏览器在300ms之后的click事件阻止掉

 

  个人推荐 FastClick.js ,下面简述一下使用方法以及注意事项

      ①:首先引入 FastClick.js 文件

      ②:调用 FastClick.attach() 方法,调用该方法的写法有 3 种 ,如下

    js

    window.onload = function() {
FastClick.attach(document.body);
}
    if('addEventListener' in document) {
document.addEventListener('DOMContentLoaded', function() {   
FastClick.attach(document.body);     
});
 
}

    jquery

  $(function() {
FastClick.attach(document.body);
});

  注:引用了 Fastclick.js 后,JS就只能用 addEventListener 绑定事件,而不能直接用 element.click 的方式添加事件

    否则可能会出现点击事件不触发,或触发以后不执行方法

   这样可以的

    element.addEventListener('click', function() {
element.className = 'tu-mask';
element.style.display = "block";
});

  这样就不行了

    element.click = function() {
element.className = 'tu-mask';
element.style.display = "block";
}

移动端点击事件300ms延迟问题解决方案——fastclick.js的更多相关文章

  1. 解决移动端点击穿透问题_h5实现移动端点击事件穿透的多种解决方案

    移动端点透点透现象出现的场景: 当A/B两个层上下z轴重叠,上层的A点击后消失或移开(这一点很重要),并且B元素本身有默认click事件(如a标签)或绑定了click事件.在这种情况下,点击A/B重叠 ...

  2. js-解决移动端点击事件的延迟问题

    众所周知,在手机上的点击事件会有延迟300ms的问题.但在做手机端某些点击小游戏时,我们就需要取消这个延迟的问题: 第一步:禁止页面的缩放 <meta name="viewport&q ...

  3. 移动端300ms点击事件的延迟

    移动端click事件300ms延迟 移动端click事件300ms的延迟在目前看来,已经是老生常谈了. 以下内容,我会在参考资源的基础上谈谈我对移动端click事件300ms延迟的一些理解.本人愚昧, ...

  4. 后台找到repeater里面的div并添加客户端点击事件

    public partial class Inv_SelectWorkservice : System.Web.UI.Page,IPostBackEventHandler{ } 通过OnItemCre ...

  5. 移动端click事件300ms延迟

    移动端click 事件延迟300ms 一般情况下,如果没有经过特殊处理,移动端浏览器在派发点击事件的时候,通常会出现300ms左右的延迟.也就是说,当我们点击页面的时候移动端浏览器并不是立即作出反应, ...

  6. 处理移动端click事件300ms延迟的好方法—FastClick

    下载地址:https://github.com/ftlabs/fastclick 1.click事件为什么有延迟? “...mobile browsers will wait approximatel ...

  7. ButterKnife 在父类 点击事件没反应的解决方案

    在用继承的方式实现butterKnife的封装的时候遇到问题, butterKnife就在baseActivity中绑定的,但是父类中公共控件点击事件无效.找了半天原因,原来是子类和父类定义的点击方法 ...

  8. 移动端点击事件兼容问题,在pc端可以点,在手机上不可以点

    ms-click="showCodeExplain()" onClick="javascript:;" 在点击事件后面加上onClick="javas ...

  9. 解决移动端click事件300ms延迟的问题

    方法1.部分浏览器的<meta>标签加上width=device-width就能解决. 方法2.引入fastclick.js库 <!DOCTYPE html> <html ...

随机推荐

  1. sed awk

    sed -n 's/,*$//g;s/,\+/,/g;/,/p' test.csv 去除行尾逗号,将多个连续逗号合并,过滤没有逗号的行 awk -F, 'NF>5 split($1,a,&quo ...

  2. Samtools在Linux上非root权限的安装

    第一次在Linux上不用root权限安装软件,查看了很多博客,并实践安装成功.大致总结了一下samtools的安装过程,仅供大家参考,如有不对的地方,欢迎指正~ samtools安装过程中依赖于lzm ...

  3. CSS样式内容

    CSS代码规范:尽量不要在标签内使用样式代码. .css文档内部声明不换行可以节省内存. 谨记: 常犯的错误是.html文档和.css样式表都写好了,但总会忘记插入样式表. 1.字体的样式 ​  2. ...

  4. Golang:sync.Map

    由于map在gorountine 上不是安全的,所以在大量并发读写的时候,会出现错误. 在1.9版的时候golang推出了sync.Map. sync.Map 通过阅读源码我们发现sync.Map是通 ...

  5. mr统计每年中每月温度的前三名

    weatherMapper package com.laoxiao.mr.weather; import java.text.ParseException; import java.text.Simp ...

  6. 解决js数组循环删除出错

    for(var i=0,flag=true,len=arr.length;i<len;flag ? i++ : i){ if( arr[i]&&arr[i].status==0 ...

  7. C++如何获取当前路径下所有文件的文件名

    今天我遇到了这样一个任务:要求编写一个程序,统计和这个程序在同一目录下(及其子目录)所有文件的单词数.统计单词数十分倒不是太难,倒是找出同一目录下的所有文件,是我从来没有接触过的.仔细分析,这个问题其 ...

  8. C++程序调用python3

    今天想做一个简单的管理密码的小程序,由于最近了解了下Python,就想用Python来写.但是看了看Python的界面库用法有感觉有点麻烦,所以还不如直接使用MFC写写界面,关于csv的文件处理部分使 ...

  9. REdis CPU百分百问题分析

    REdis版本:4.0.9 运行环境:Linux 3.10.107 x86_64 gcc_version:4.8.5 结论:是一个BUG,在4.0.11版本中被作者antirez所修复 现象: 1)  ...

  10. 了解ip相关知识

    最近一直扫盲,作为一个编程工作者,其实涉及的东西很广,但也一直没有深入一些网络的概念. 内内网IP局域网,网线都是连接在同一个 交换机上面的,也就是说它们的IP地址是由交换机或者路由器进行分配的.而且 ...