移动端使用Click事件300ms延迟问题

在这里插入图片描述
原因:移动端在进行两次点击的时候会有一个放大效果 再次点击两次有缩小效果 这个大家应该都懂
在这里插入图片描述
SO 用户在点击一下的时候和点两下发生冲突了 用户到底是要点击一下还是会有后续动作要点击两下 并不清楚
所以会有一个时间的等待 去判断用户还有没有后续操作 Click事件的300ms Bug 就产生辽
其实对于用户来说300ms可以说几乎感觉不到 但是对于咱们程序猿来说 碰到恶心的需求 就要求你解决…在这里插入图片描述

上方法:

1.直接禁止网页双击缩放 meta中的user-scalable=no 干净又卫生

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

缺点: 网页无法缩放

2.更改默认视口宽度

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

缺点: 需要浏览器的支持

3.css touch-action
touch-action的默为 auto,将其置为 none 即可移除目标元素的 300 毫秒延迟
缺点: 新属性,可能存在浏览器兼容问题

4.tap事件
zepto的tap事件, 利用touchstart和touchend来模拟click事件

缺点: 点击穿透

5.fastclick
原理: 在检测到touchend事件的时候,会通过DOM自定义事件立即出发模拟一个click事件,并把浏览器在300ms之后真正的click事件阻止掉

缺点: 脚本相对较大

在vue中使用

```js

// 安装

npm install fastclick -S

// 引入

import FastClick from 'fastclick'

// 使用

FastClick.attach(document.body);

```

如果对你有一点点帮助的话点赞加收藏吧,互动必回噢~~~在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值