移动端双击事件,h5模拟鼠标双击,zepto实现移动端双击事件

342 篇文章 9 订阅

主要是移动端 双击会被看成是放大页面,而这个功能 做过h5的童鞋肯定知道 其实移动端是禁止放大 

那么直接的双击事件 就没有

1. 想到双击 肯定会有童鞋想到  jquery的 dblclick 事件  但问题是在移动端就不生效 那这个怎么办么

首先就是可以通过模拟来实现 

正常来说 只要第二次点击 和第一次点击的时间小于 300ms 就可以 看成是双击 那么就可以判断两次点击的 时间差 来实现了

通过setTimeout 来模拟实现了  这样的话可能会有延迟哈 

// 点击事件
        var clickid = 1;
        var timer = null;
        function a() {
            console.log('点击');
        }
        function b() {
            console.log('双击');
        }
        
        $('div').click(function() {
            if(clickid == 1) {
                startTime = new Date().getTime();
                clickid++;
                timer = setTimeout(function () {
                    a(); // 单击事件触发
                    clickid = 1;
                }, 300)
            }

            if(clickid == 2) {
                clickid ++ ;
            } else {
                var endTime = new Date().getTime();
                if ((endTime - startTime) < 300) {
                    b(); // 双击事件
                    clickid = 1;
                    clearTimeout(timer);
                }
            }
        })

我们看下实际效果哈

 

2. 第二种就可简单了 就是通过zepto 的 双击 事件 来快速 实现了

<script src="../js/zepto.js"></script>
    <script src="../js/event.js"></script>
    <script src="../js/touch.js"></script>
$('div').on('doubleTap', function() {
            console.log('双击');
        })
        $('div').on('tap', function () {
            console.log('单击');
        })

总结来说吧   

模拟的 有点延迟  效果肯定没有zepto的好  毕竟 touch 和 click 之间本来就有不小的延迟差

看你自己选择了     没必要为了一次双击就引入一个库  个人感觉 看你自己实际项目需要了 

关注我 持续更新前端知识 

  • 9
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 12
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yunchong_zhao

帮到你了,请作者喝杯矿泉水可好

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值