移动端tap事件的封装

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了移动端tap事件的封装相关的知识,希望对你有一定的参考价值。

/*封装tap*/
cc.tap = function(dom,callback){
    /*
     * 要求  没有触发 touchmove 事件
     *       并且响应速度要比click快
    */
    if(dom && typeof  dom == ‘object‘){
        var isMove = false;
        var startTime = 0;
        dom.addEventListener(‘touchstart‘,function(e){
            //console.log(‘touchstart‘);
            //console.time(‘tap‘);/*记录tap这个参数现在的时间*/
            startTime = Date.now();
        });
        dom.addEventListener(‘touchmove‘,function(e){
            //console.log(‘touchmove‘);
            isMove = true;
        });
        dom.addEventListener(‘touchend‘,function(e){
            //console.log(‘touchend‘);
            //console.timeEnd(‘tap‘)/*打印tap这个参数距离上一次记录的时候的时间*/
            /*判读  是否满足tap 的要求  一般要求tap的响应时间150*/
            if(!isMove && (Date.now()-startTime) < 150){
                /*调用 callback*/
                callback && callback(e);
            }
            /*重置 参数*/
            isMove = false;
            startTime = 0;
        });
    }
}

这边进行封装的原因是click事件有一个延迟

以上是关于移动端tap事件的封装的主要内容,如果未能解决你的问题,请参考以下文章

使用原生JS封装Tap事件,解决移动端300ms延迟

移动端web,tap与click事件

移动端触屏click点击事件延迟问题,以及tap的解决方案

移动端tap事件的实现

10行代码搞定移动web端自定义tap事件

移动端WEB开发,click,touch,tap事件浅析