zoukankan      html  css  js  c++  java
  • 移动端300ms点击延迟和点击穿透问题

    1 问题

    移动端浏览器点击事件通常有300ms的延时,随着用户体验要求增高,300ms的点击延时越来越难以忍受。
    

    2 原因

    因为手机屏幕小,所有做了双击缩放,手机浏览器为了判断用户是单击还是双击就添加了300ms的延时处理。
    

    3 解决办法(建议用)

    3.1 禁用缩放

    HTML文档头部包含如下meta标签

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

    3.2 更改默认的视口宽度

    移动端浏览器默认的视口宽度并不等于设备浏览器视窗宽度,而是要比设备浏览器视窗宽度大,通常是980px。我们可以通过以下标签来设置视口宽度为设备宽度。

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

    3.3 CSS touch-action

    touch-action: none
    

    3.4 引入fastclick方法 https://github.com/ftlabs/fastclick

    3.4.1 原理

    该方法在检测到touchend事件后,会触发自己模拟的click事件

    3.4.2 引用和调用

    <script src='fastclick.js'></script>
    <script>
      if('addEventListener' in document){
        document.addEventListener('DOMContentLoaded', function(){
          FastClick.attach(document.body);
        }, false)
      }
    </script>
    

    4 补充

    现在浏览器厂商已经做了处理,300ms已缩减至88ms,后续还会更少

  • 相关阅读:
    Linux find 用法示例
    [转载]进程的概念与结构
    linux vi命令详解
    vi快捷键必知必会
    vim分屏操作
    硬连接和软连接的区别
    javascript_console调试常用方法
    javascript_错误处理机制
    Array详解
    react--setState使用
  • 原文地址:https://www.cnblogs.com/xihailong/p/14993362.html
Copyright © 2011-2022 走看看