前端之家收集整理的这篇文章主要介绍了
移动端html5模拟长按事件的实现方法,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
为啥写这篇
文章
最近接了个需求,要求长按某个
标签显示删除一个悬浮的
删除按钮。这个需求其实在app上很常见,但是在移动端h5中,我们没有长按的事件,所以就需要自己模拟这个事件了。
大概
效果如下:
ps: 为了做个gif还下了app,还得通过
邮件发到电脑上,脑瓜疼。。
思路
放弃click事件,通过判断按的时长来决定是单击还是长按
使用touchstart和touchend事件
在touchstart中开启一个定时器,比如在700ms后
显示一个长按
菜单
在touchend中清除这个定时器,这样如果按下的时间超过700ms,那么长按
菜单已经
显示出来了,清除定时器不会有任何影响;如果按下的时间小于700ms,那么touchstart中的长按
菜单还没来得及
显示出来,就被清除了。
由此我们可以实现模拟的长按事件了。
上
代码
请把重点放在JS上,这里贴出来完整的
代码是为了方便大家看个仔细,
代码可以拷贝直接看
效果
css中大部分只是做了样式的美化,还有一开始让
删除按钮隐藏起来
HTML:
Document