在html5中如何实现长按事件效果
发表于:2025-02-12 作者:千家信息网编辑
千家信息网最后更新 2025年02月12日,这篇文章主要介绍了在html5中如何实现长按事件效果的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇在html5中如何实现长按事件效果文章都会有所收获,下面我们一起来看看吧
千家信息网最后更新 2025年02月12日在html5中如何实现长按事件效果
这篇文章主要介绍了在html5中如何实现长按事件效果的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇在html5中如何实现长按事件效果文章都会有所收获,下面我们一起来看看吧。
最近接了个需求,要求长按某个标签显示删除一个悬浮的删除按钮。这个需求其实在app上很常见,但是在移动端h6中,我们没有长按的事件,所以就需要自己模拟这个事件了。
ps: 为了做个 gif 还下了 app ,还得通过邮件发到电脑上,脑瓜疼。。
思路
放弃
click
事件,通过判断按的时长来决定是单击还是长按使用
touchstart
和touchend
事件在touchstart中开启一个定时器,比如在 700ms 后显示一个长按菜单
在touchend中清除这个定时器,这样如果按下的时间超过700ms,那么长按菜单已经显示出来了,清除定时器不会有任何影响;如果按下的时间小于 700ms,那么
touchstart
中的长按菜单还没来得及显示出来,就被清除了。
由此我们可以实现模拟的长按事件了。
上代码
请把重点放在JS上,这里贴出来完整的代码是为了方便大家看个仔细,代码可以拷贝直接看效果
css中大部分只是做了样式的美化,还有一开始让删除按钮隐藏起来
HTML:
Document 长按我 删除
JS
let timer = nulllet startTime = ''let endTime = ''const label = document.querySelector('.label')const deleteBtn = document.querySelector('.delete_btn')label.addEventListener('touchstart', function () { startTime = +new Date() timer = setTimeout(function () { deleteBtn.style.display = 'block' }, 700)})label.addEventListener('touchend', function () { endTime = +new Date() clearTimeout(timer) if (endTime - startTime < 700) { // 处理点击事件 label.classList.add('selected') }})
CSS
.container { position: relative; display: inline-block; margin-top: 50px;}.label { display: inline-block; box-sizing: border-box; width: 105px; height: 32px; line-height: 32px; background-color: #F2F2F2; color: #5F5F5F; text-align: center; border-radius: 3px; font-size: 14px;}.label.selected { background-color: #4180cc; color: white;}.delete_btn { display: none; position: absolute; top: -8px; left: 50%; transform: translateX(-50%) translateY(-100%); color: white; padding: 10px 16px; background-color: rgba(0, 0, 0, .7); border-radius: 6px; line-height: 1; white-space: nowrap; font-size: 12px;}.delete_btn::after { content: ''; width: 0; height: 0; border-width: 5px; border-style: solid; border-color: rgba(0, 0, 0, .7) transparent transparent transparent; position: absolute; bottom: -9px; left: 50%; transform: translateX(-50%);}
ps: touchstart
和touchend
只有在移动端设备上才有用,如果要看代码示例的话请:
用 chrome
F12打开调时窗
切换到模拟移动设备
关于"在html5中如何实现长按事件效果"这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对"在html5中如何实现长按事件效果"知识都有一定的了解,大家如果还想学习更多知识,欢迎关注行业资讯频道。
事件
效果
代码
定时器
知识
菜单
移动
内容
按钮
时间
篇文章
设备
需求
上代
价值
只是
只有
常见
思路
拷贝
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
服务器后期维修方式
选煤工艺数据库
街道办事处网络安全事件应急预案
武汉奥涂网络技术有限公司
重庆垫江众道生鲜软件开发
百信恒山服务器u盘安装
服务器bom
下载视频提示连接服务器视频
spss找不到数据库
区块链软件开发上市公司
服务器管理PHP源码
国产数据库最新技术
网络文化节暨网络安全宣传周
服务器与plc怎么控制变频器
怎么攻击别人的服务器
汕头电商软件开发方案
设计数据库概念结构时怎么抽象
数据库游标什么时候能用
plsql数据库字符集和客户端
网络安全法的特点包括什么
华为公司的网络技术
服务器 数据转发
浙江全过程网络安全工程联系方式
手机smb共享服务器
软件开发要看的书
笔记本用于软件开发
软件开发专业详细描述
网络技术管理岗位资格
数据库专门的关系运算
郑州学软件开发机构哪个好