var startx,starty,endx,endy; // 开始触控的时候绑定touchstart事件 document.addEventListener('touchstart', function(e){ startx=e.touches[0].pageX; //获取触摸的X坐标。touches数组保存着多点触控的信息,这里只有一个点,所以为0 starty=e.touches[0].pageY; }); //上下滑动的时候可能是触发默认的滚屏事件,从而产生BUG,需要阻止此事件 document.addEventListener('touchmove',function(e){ e.preventDefault(); }); //结束触控的时候绑定touchend事件 document.addEventListener('touchend', function(e){ endx=e.changedTouches[0].pageX; //changedTouches为手指离开的信息 endy=e.changedTouches[0].pageY; var deltax=endx-startx; //取得触控后坐标的差值 var deltay=endy-starty; if (Math.abs(deltax)<0.3*documentW&&Math.abs(deltay)<0.3*documentW) { //如果移动的距离小于0.3*设备宽度,则判定为不是滑动,退出(可以避免用户只是普通的点击造成的BUG) return; } if (Math.abs(deltax)>=Math.abs(deltay)) { //如果为true,则说明这个滑动是在X轴方向 if (deltax>0) { //为true则为向右滑动 }else{ //向左滑动 } }else{ if (deltay>0) { //为true则向下滑动 }else{ //向上滑动 } } });