js判斷手指滑動方向(移動端)


var startx, starty;

     //獲得角度
     function getAngle(angx, angy) {
         return  Math.atan2(angy, angx) * 180 / Math.PI;
     };
 
     //根據起點終點返回方向 1向上 2向下 3向左 4向右 0未滑動
     function getDirection(startx, starty, endx, endy) {
         var  angx = endx - startx;
         var  angy = endy - starty;
         var  result = 0;
 
         //如果滑動距離太短
         if  (Math.abs(angx) < 2 && Math.abs(angy) < 2) {
             return  result;
         }
 
         var  angle = getAngle(angx, angy);
         if  (angle >= -135 && angle <= -45) {
             result = 1;
         else  if  (angle > 45 && angle < 135) {
             result = 2;
         else  if  ((angle >= 135 && angle <= 180) || (angle >= -180 && angle < -135)) {
             result = 3;
         else  if  (angle >= -45 && angle <= 45) {
             result = 4;
         }
 
         return  result;
     }
     //手指接觸屏幕
     document.addEventListener( "touchstart" , function(e) {
         startx = e.touches[0].pageX;
         starty = e.touches[0].pageY;
     },  false );
     //手指離開屏幕
     document.addEventListener( "touchend" , function(e) {
         var  endx, endy;
         endx = e.changedTouches[0].pageX;
         endy = e.changedTouches[0].pageY;
         var  direction = getDirection(startx, starty, endx, endy);
         switch  (direction) {
             case  0:
                 alert( "未滑動!" );
                 break ;
             case  1:
                 alert( "向上!" )
                 break ;
             case  2:
                 alert( "向下!" )
                 break ;
             case  3:
                 alert( "向左!" )
                 break ;
             case  4:
                 alert( "向右!" )
                 break ;
             default :
         }
     },  false );


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM