为了给触摸界面提供强有力的支持,触摸事件提供了响应用户在触摸屏或触摸板上的操作的能力。状态改变事件。此类事件用于描述一个或多个触摸点,允许开发人员检测触摸点的移动、触摸点的增加和减少等。每个Touch对象代表一个触摸点;每个触摸点都由其位置、大小、形状、压力大小和目标元素来描述。TouchList对象表示触摸点列表。触摸事件的类型为了区分与触摸相关的状态变化,有几种类型的触摸事件。通过查看触摸事件touchstart的TouchEvent.type属性可以判断当前事件属于哪种类型:当用户将触摸点放在触摸表面上时触发。touchend:当触摸点被用户从触摸表面移开时触发(当用户将手指从触摸表面移开时)。touchmove:当用户在触摸表面上移动触摸点时触发。touchcancel:触摸由于某种原因中断时触??发。判断滑动方向的基本原理是记录开始滑动(touchStart)和结束滑动(touchEnd)的坐标位置,然后计算相对位置。touchStart:function(e){startX=e.touches[0].pageX;startY=e.touches[0].pageY;e=e||窗口事件;},touchEnd:function(e){constthat=this;endX=e.changedTouches[0].pageX;endY=e.changedTouches[0].pageY;that.upOrDown(startX,startY,endX,endY);},upOrDown:function(startX,startY,endX,endY){constthat=this;让direction=that.GetSlideDirection(startX,startY,endX,endY);switch(direction){case0:console.log("Noslide");休息;案例一:console.log("Up");休息;案例2:console.log("Down");休息;案例3:console.log("Left");休息;案例4:console.log("Right");休息;默认值:中断;}},//返回方向1:上,2:下,3:左,4:右,0:不滑动GetSlideDirection:function(startX,startY,endX,endY){constthat=this;让dy=startY-endY;让dx=endX-startX;让结果=0;//如果滑动距离太短if(Math.abs(dx)<2&&Math.abs(dy)<2){返回结果;}letangle=that.GetSlideAngle(dx,dy);如果(角度>=-45&&角度<45){结果=4;}elseif(角度>=45&&角度<135){结果=1;}elseif(角度>=-135&&角度<-45){结果=2;}elseif((角度>=135&&角度<=180)||(角度>=-180&&角度<-135)){结果=3;}返回结果;},//返回角度GetSlideAngle:function(dx,dy){returnMath.atan2(dy,dx)*180/Math.PI;}除了H5的新方法,原生JS方法也可以使用原生JS判断视图的滑动方向。.scrollTop一直为0,需要改为document.documentElement.scrollTop
