在html5中如何实现长按事件效果
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章主要介绍了在html5中如何实现长按事件效果的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇在html5中如何实现长按事件效果文章都会有所收获,下面我们一起来看看吧
千家信息网最后更新 2026年11月02日在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安全错误
数据库的锁怎样保障安全
博彦科技互联网金融
互联网和科技技术
互联网金融监管科技数据
互联网通讯科技
科技互联网技术
易互联网科技有限公司
互联网科技的未来发展
金融科技和互联网金融
四个字互联网科技公司取名
天速互联网络科技有限公司
宁波青枫互联网科技有限公司
常德市电业局互联网科技部
搜狐科技互联网
民营互联网公司国防科技
风投北京互联网科技
互联网与数字科技关系
工业互联网科技创业
张家口科技产业互联网平台
恒生科技指数 中概互联网
六子台科技互联网展会
百单网互联网科技有限公司
互联网科技公司简介
互联网金融与金融科技
友谊互联网络科技
兼蜜互联网科技
互联网高科技企业
顺网科技2021年互联网排名
东营紫格互联网科技
广州智享互联网科技
互联网的科技体现在哪里