移动端click事件300ms延迟

news/2025/1/15 15:06:32/

文章目录

  • 移动端click事件300ms延迟
    • 问题
    • 原因
    • 解决
      • 将click事件放在touchstart或touchend中处理
      • 禁止双击缩放

移动端click事件300ms延迟

问题

在移动端中,点击屏幕的按钮会产生200~300ms的延迟响应,会导致用户认为页面卡顿问题。

如下:

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><meta http-equiv="X-UA-Compatible" content="IE=edge" /><title>click事件300ms延迟</title><style>#btn {width: 100%;height: 300px;font-size: 100px;}</style></head><body><button id="btn">点击</button><script>let btn = document.getElementById("btn");btn.addEventListener("touchstart", () => {console.time("click");});btn.addEventListener("click", () => {console.timeEnd("click");console.log("点击了");});</script></body>
</html>

在这里插入图片描述

原因

原因是在移动端下,浏览器会做双加缩放检测(double-tap to zoom)。

解决

将click事件放在touchstart或touchend中处理

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><meta http-equiv="X-UA-Compatible" content="IE=edge" /><title>click事件300ms延迟</title><style>#btn {width: 100%;height: 300px;font-size: 100px;}</style></head><body><button id="btn">点击</button><script>let btn = document.getElementById("btn");btn.addEventListener("touchstart", () => {});btn.addEventListener("touchend", () => {console.log("点击了");});</script></body>
</html>

禁止双击缩放

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><meta http-equiv="X-UA-Compatible" content="IE=edge" /><metaname="viewport"content="width=device-width, initial-scale=1.0, minimum-scale=1,maximum-scale=1, user-scalable=no" /><title>click事件300ms延迟</title><style>#btn {width: 100%;height: 300px;font-size: 100px;}</style></head><body><button id="btn">点击</button><script>let btn = document.getElementById("btn");btn.addEventListener("touchstart", () => {console.time("click");});btn.addEventListener("click", () => {console.timeEnd("click");console.log("点击了");});</script></body>
</html>

http://www.ppmy.cn/news/53736.html

相关文章

【处理网络难题,还得靠这份网工经验合集】

网络维护&#xff0c;是很多初阶网工必须要做的工作。但说起来容易&#xff0c;做起来难&#xff0c;想要做好这个工作&#xff0c;需要的不仅仅是技术的加持&#xff0c;更多的是经验的积累。 今天&#xff0c;和你分享一份关于一些网络维护过程中一些典型、经典问题的解决方…

搭建微型服务器(node express框架)

目录 一&#xff1a;打包&#xff08;npm run build&#xff09; 二&#xff1a;变成合法的包&#xff08;新建server文件夹&#xff09; 三&#xff1a;一路回车 四&#xff1a;新建服务器主文件 五&#xff1a;编辑server.js 六&#xff1a;node server启动服务器 七&a…

【电商必学】 WhatsApp 全新攻略:什么是交互式消息模板

网购与WhatsApp等社交通讯平台有着密不可分的关系&#xff0c;为什么这么说呢&#xff1f;因为基本上所有的网购的平台都会提供查询、下单方式给客户&#xff0c;而WhatsApp是全世界使用率最高的通讯平台&#xff0c;所以大部分电子商户都会选择WhatsApp Business与电子商务连接…

面了20家大厂,发现这样介绍项目经验,显得项目很牛...

我在刚刚开始面试的时候&#xff0c;也遇到了这个问题&#xff0c;也是我第一个思考的问题&#xff0c;如何介绍自己的项目&#xff0c;既可以比较全面的让面试官了解这个项目&#xff0c;同时&#xff0c;也不会让面试官觉得废话太多。经过这么多的面试&#xff0c;我发现&…

DASFAA 2023|创邻周研博士分享前沿图数据库观点

4月17-20日&#xff0c;2023年第28届高级应用数据库系统国际会议&#xff08;DASFAA2023&#xff09;在天津成功举行。创邻科技CTO周研博士受邀参会&#xff0c;围绕Galaxybase国产高性能图数据库进行精彩分享。 DASFAA 2023由DASFAA指导委员会&#xff08;DASFAA Steering Co…

git暂存命令-提交部分代码

git stsh 用于暂存修改的代码,代码文件分两种类型: 修改与新增的文件.使用git stash 命令默认只会暂存修改的代码文件. git add git add 命令可将该文件添加到暂存区。添加一个或多个文件到暂存区&#xff1a; git add [file1] [file2] ... 1 暂存未add 的文件 git stash sav…

详解八大排序算法-附动图和源码(插入,希尔,选择,堆排序,冒泡,快速,归并,计数)

目录 &#x1f34f;一.排序的概念及应用&#x1f34f; 1.排序的概念 2.排序的应用 3.常用的排序算法 &#x1f34e;二.排序算法的实现&#x1f34e; 1.插入排序 1.1直接插入排序 1.2希尔排序&#xff08;缩小增量排序&#xff09; 2.选择排序 2.1直接选择排序 2.2堆排序…

SpringBoot使用ElasticSearch

ES官网&#xff1a;https://www.elastic.co/cn/downloads/elasticsearch ES下载地址&#xff1a;https://www.elastic.co/cn/downloads/past-releases#elasticsearch kibana官网&#xff1a;https://www.elastic.co/cn/downloads/kibana kibana下载地址&#xff1a;https://…