移动端click延迟解决方案

移动端click延迟解决方案

一.禁止屏幕缩放

<meta name="viewport" content="user-scalable=no">

二.封装一个函数

function tap(obj, callback) {
    var isMove = false;
    var startTime = 0;//记录触摸时间变量
    obj.addEventListener('touchstart', function (e) {
        startTime = Date.now();//触摸事件
    });
    obj.addEventListener('touchmove', function (e) {
        isMove = true;//看看是否有滑动,有滑动算拖拽,不算点击
    });
    obj.addEventListener('touchend', function (e) {
        if (!isMove && (Date.now() - startTime) < 150) {
            callback && callback();
        }
        isMove = false; //重置
        startTime = 0;
    });    
}
//调用
tap(div,function(){    /*执行代码*/     });

三.使用fastclick插件

地址:https://github.com/ftlabs/fastclick

(1)引入插件

<script src="fastclick.js"></script>

(2)body中复制如下代码

<script>
if ('addEventListener' in document) {
	document.addEventListener('DOMContentLoaded', function() {
		FastClick.attach(document.body);
	}, false);
}
</script>

(3)使用示例

var div = document.querySelector('div');
div.addEventListener('click', function (e) {
    /*执行代码*/
 })
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值