1. 程式人生 > >JS手機端touch事件計算滑動距離的方法

JS手機端touch事件計算滑動距離的方法

計算手勢在手機螢幕上滑動時,手勢滑動的距離,程式碼如下:

function wetherScroll(){ var startX = startY = endX =endY =0; var body=document.getElementsByTagName(“body”); body.bind(‘touchstart’,function(event){ var touch = event.targetTouches[0]; //滑動起點的座標 startX = touch.pageX; startY = touch.pageY; // console.log(“startX:”+startX+","+“startY:”+startY); }); body.bind(“touchmove”,function(event){ var touch = event.targetTouches[0]; //手勢滑動時,手勢座標不斷變化,取最後一點的座標為最終的終點座標 endX = touch.pageX; endY = touch.pageY; // console.log(“endX:”+endX+","+“endY:”+endY); }) body.bind(“touchend”,function(event){ var distanceX=endX-startX, distanceY=endY - startY; // console.log(“distanceX:”+distanceX+","+“distanceY:”+distanceY); //移動端裝置的螢幕寬度 var clientHeight; =document.documentElement.clientHeight; // console.log(clientHeight;0.2); //判斷是否滑動了,而不是螢幕上單擊了 if(startY!=Math.abs(distanceY)){ //在滑動的距離超過螢幕高度的20%時,做某種操作 if(Math.abs(distanceY)>clientHeight

0.2){ //向下滑實行函式someAction1,向上滑實行函式someAction2 distanceY <0 ? someAction1():someAction2(); } } startX = startY = endX =endY =0; }) }