移動端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事件有一個延遲


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM