touch判断方向后执行相应操作

来源:互联网 发布:南京行知中学高中部 编辑:程序博客网 时间:2024/05/19 02:39

/**  obj:触发元素;  dir:期望触发方向;'up','down','left','right'  fn :触发后的回调函数*/var touchEvent = function(obj,dir,fn){    this.pos = {x:0,y:0};//开始触发位置    var me = this;    obj.addEventListener('touchstart',function(event){        var touch = event.touches[0];        me.pos.x = touch.pageX;        me.pos.y = touch.pageY;    },false);    obj.addEventListener('touchmove',function(event){        var touch = event.touches[0];        me.curtouch = {            x:touch.pageX,            y:touch.pageY        }    },false);    obj.addEventListener('touchend',function(event){        if(me.checkDirV(me.pos,me.curtouch)==dir ||me.checkDirH(me.pos,me.curtouch)==dir){            (typeof fn=='function')&&fn();        }    },false);   }touchEvent.prototype = {    posdiff:100,//触发敏感度    checkDirV:function(a,b){        return Math.abs(a.y-this.posdiff)>b.y?(a.y>b.y?'up':'down'):'';    },    checkDirH:function(a,b){        return Math.abs(a.x-this.posdiff)>b.x?(a.x>b.x?'left':'right'):'';    }}
//eg:new touchEvent(document.getElementById('content'),'left',function(){alert(34);});


原创粉丝点击