移动端300ms点击延迟和点击穿透问题详细原理参考https://www.jianshu.com/p/6e2b68a93c88(此文章内方法未测试,只参考原理)
具体解决方案如下:(亲测有效)
操作系统ubuntu18.4 64位
因为历史原因,移动端点击事件会有300ms延迟,来判断用户是连续双击缩放还是点击跳转。即如果300ms内连续点击两次,则会理解为对页面进行缩放操作(当然前提是移动端页面设置为可缩放的);在一次点击之后如果300ms内没有再次发生点击事件,那么系统会默认为跳转事件,点击300ms后进行跳转。所以移动端正常跳转页面会有300ms延迟问题。
使用fastclick.js可以屏蔽移动端的300ms问题。引入fastclick.js插件然后添加下边代码。
https://github.com/ftlabs/fastclick
if ('addEventListener' in document) { document.addEventListener('DOMContentLoaded', function() { FastClick.attach(document.body); }, false); }
如果同时使用了jquery
$(function() {
FastClick.attach(document.body);
});
如果使用了模块加载工具
var attachFastClick = require('fastclick'); attachFastClick(document.body);