移动端滑动方向判断

function touches(obj,direction,fun){  
    //obj:ID对象  
    //direction:swipeleft,swiperight,swipetop,swipedown,singleTap,touchstart,touchmove,touchend  
    //          划左,    划右,     划上,   划下,    点击,    开始触摸, 触摸移动, 触摸结束  
    //fun:回调函数  
    var defaults = {x: 5,y: 5,ox:0,oy:0,nx:0,ny:0};  
    direction=direction.toLowerCase();  
    //配置:划的范围在5X5像素内当点击处理  
    obj.addEventListener("touchstart",function() {
        defaults.ox = event.targetTouches[0].pageX;  
        defaults.oy = event.targetTouches[0].pageY;  
        defaults.nx = defaults.ox;  
        defaults.ny = defaults.oy;  
        if(direction.indexOf("touchstart")!=-1)fun();  
    }, false);  
    obj.addEventListener("touchmove",function() {  
        event.preventDefault();  
        defaults.nx = event.targetTouches[0].pageX;  
        defaults.ny = event.targetTouches[0].pageY;  
        if(direction.indexOf("touchmove")!=-1)fun();  
    }, false);  
    obj.addEventListener("touchend",function() {  
        var changeY = defaults.oy - defaults.ny;  
        var changeX = defaults.ox - defaults.nx;  
        if(Math.abs(changeX)>Math.abs(changeY)&&Math.abs(changeY)>defaults.y){  
            //左右事件  
            if(changeX > 0) {  
                if(direction.indexOf("swipeleft")!=-1)fun();  
            }else{  
                if(direction.indexOf("swiperight")!=-1)fun();  
            }  
        }else if(Math.abs(changeY)>Math.abs(changeX)&&Math.abs(changeX)>defaults.x){  
            //上下事件  
            if(changeY > 0) {  
                console.log('a');
                if(direction.indexOf("swipetop")!=-1)fun();  
            }else{  
                if(direction.indexOf("swipedown")!=-1)fun();  
            }  
        }else{  
            //点击事件  
            if(direction.indexOf("singleTap")!=-1)fun();  
        }  
        if(direction.indexOf("touchend")!=-1)fun();  
    }, false);  
}  
function fun(){
    console.log('回调函数');
}
var swipetop = 'swipetop';
window.onload=touches(window,swipetop);

 

posted @ 2015-07-21 12:05  范小武  阅读(411)  评论(0编辑  收藏  举报