移动端滑动方向判断

移动端滑动方向判断,主要是判断利用x,y轴方向的增量,哪个轴增的快,就是哪个方向。

在touchstart中获取初始点,startX, startY;

在touchmove中获取移动点,moveX, moveY

计算两者的差 deltaX = moveX - startX;  deltaY = moveY - startY;

之后累加deltaX和deltaY:

distX += Math.abs(deltaX)
distY += Math.abs(deltaY)

if (distX > distY && deltaX > 0) {
console.log(‘右滑‘)
}
if (distX > distY && deltaX < 0) {
console.log(‘左滑‘)
}
if (distX < distY && deltaY < 0) {
console.log(‘上滑‘)
}
if (distX < distY && deltaY > 0) {
console.log(‘下滑‘)
}

思路就是这样,代码如下

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width,initial-scale=1.0">
    <title>滑动方向判断</title>
    <style>
     #box{
      width: 100%;
      height: 500px;
      background: orange;
     }
    </style>
  </head>
  <body>
    <div id="box"></div>
    <script>
      let startX,startY,moveX,moveY,deltaX,deltaY;
      let distX = 0
      let distY = 0
      let box = document.getElementById(‘box‘)
      box.addEventListener(‘touchstart‘, function(e) {
          let point = e.touches ? e.touches[0] : e
          startX = point.pageX
          startY = point.pageY
          distX = 0
          distY = 0
      })
      box.addEventListener(‘touchmove‘, function(e) {
          let point = e.touches ? e.touches[0] : e
          moveX = point.pageX
          moveY = point.pageY
          deltaX = moveX - startX
          deltaY = moveY - startY
          distX += Math.abs(deltaX)
          distY +=  Math.abs(deltaY)
          console.log(distX, distY)
          if (distX > distY && deltaX > 0) {
            console.log(‘右滑‘)
          }
          if (distX > distY && deltaX < 0) {
            console.log(‘左滑‘)
          }
          if (distX < distY && deltaY < 0) {
            console.log(‘上滑‘)
          }
          if (distX < distY && deltaY > 0) {
            console.log(‘下滑‘)
          }
      })
    </script>
  </body>
</html>

原文地址:https://www.cnblogs.com/lonfate/p/9157327.html

时间: 2024-10-06 23:21:38

移动端滑动方向判断的相关文章

UIPanGestureRecognizer上下左右滑动方向判断算法

CGFloat const gestureMinimumTranslation = 20.0; typedef enum :NSInteger { kCameraMoveDirectionNone, kCameraMoveDirectionUp, kCameraMoveDirectionDown, kCameraMoveDirectionRight, kCameraMoveDirectionLeft } CameraMoveDirection; @interfaceViewController

《移动端浏览器Touch事件判断手指滑动方向方法》

1 $("body").on("touchstart", function(e) { 2     e.preventDefault(); 3     startX = e.originalEvent.changedTouches[0].pageX, 4     startY = e.originalEvent.changedTouches[0].pageY; 5 }); 6 $("body").on("touchmove",

H5案例分享:移动端touch事件判断滑屏手势的方向

移动端touch事件判断滑屏手势的方向 方法一 当开始一个touchstart事件的时候,获取此刻手指的横坐标startX和纵坐标startY: 当触发touchmove事件时,在获取此时手指的横坐标moveEndX和纵坐标moveEndY;最后,通过这两次获取的坐标差值来判断手指在手机屏幕上的滑动方向. 思路:用touchmove的最后坐标减去touchstart的起始坐标,X的结果如果正数,则说明手指是从左往右划动:X的结果如果负数,则说明手指是从右往左划动:Y的结果如果正数,则说明手指是从

Js判断H5上下滑动方向及滑动到顶部和底部判断

昨天一位做移动端H5开发的同事说,H5滑动方向要实时判断向下还是向上,但判断是否滑动到底部时判断有问题一直没解决,于是就去问度娘,搜了很多资料,大部分有重复,于是根据大家的资料借鉴学习,在大家的基础上写了一个小例子.功能主要时可以实时的判断上下滑动的方向,是否滑动到底部或顶部来做某些事件触发.例子中有使用到其他博客上的内容,如原作者看到请勿怪,如果例子中有错误的请大家指正.如果使用pc端浏览器查看请把浏览器设置为手机浏览器模式. <!DOCTYPE HTML> <html> <

判断UISrollview的滑动方向

很常用的一个功能,就记录下来了. -(void)scrollViewWillBeginDragging:(UIScrollView *)scrollView { historyY = scrollView.contentOffset.y; } -(void)scrollViewDidScroll:(UIScrollView *)scrollView { if (scrollView.contentOffset.y<historyY) { NSLog(@"down"); } els

初试 vue2.0——9.项目开发_better-scroll 实现移动端滑动2

写在前面的话: 上一篇文章实现了滑动效果,这部分来试试左右联动效果的实现方法吧 九.better-scroll + vue2.0 实现移动端滑动2--左右联动 效果:滑动右侧时,左侧也能有相应的变化:点击左侧时,右侧也能自动定位到相应的位置. 如下图所示界面,左侧为分栏,右侧为分栏详情. 滑动右边使左边联动的大概的思路: 1)要知道右侧的列表中,每一个分栏所占的高度,存进一个数组中. 2)实现左边联动,则必须要监控 "scroll"事件,获取其高度 3)将scroll 的高度与右侧分栏

滑动方向的检测和侧滑效果,自己可以定义,或者上啦刷新的制作基础

滑动方向的检测和侧滑效果,自己可以定义,或者上啦刷新的制作基础 序言: 在iPhone开发里面,经常看到手指在触摸屏上拖动时,可以让画面左右移动,就像侧滑效果一样.今天,我们要做一个效果.. 正文: 第一步: 我们要创建3个枚举量,来表示画面的状态....代码如下: typedef enum { //原状态 KYuanTai, //横向滑动 KHengTai, //纵向滑动 KZongTai, }DirectionForSlide; 枚举类型定义有好几种...这是其中一种... 第二步:我们创建

ios开发过程中屏幕方向判断的问题

判断屏幕的方法有很多着及仅提供几个我个人认为好用的方案 Landscape 竖屏 Portrait 横屏 最有效的方法是: 在willRotateToInterfaceOrientation:duration: 方法中将方向存储起来: DrviceOrientation = toInterfaceOrientation; 然后在别的方法中使用相应的屏幕的方向 方法一: 直接获取设备的方法:self.interfaceOrientation(此方法已经过期) 方法二: 通过下面的方法: UIDev

用HTML和javascript(JS)计算触屏手机手指滑动方向的演示

移动终端的流行,程序员希望通过HTML+JS完成触屏动作的识别.下面给出具体实现的例子,供大家参考. 将下面的代码复制并保存,用手机访问,现在的手机浏览器一般都支持触屏,针对本演示来讲就是支持三个js事件: 1.touchstart---手指开始触摸事件,此事件可以获取起始坐标,将起始坐标保存在pressX 和pressY 中. 2.touchmove---手机触摸移动时间,只要手机不离开指定元素,就不停的将手机的新坐标通过事件发给页面上的js代码.通过计算此事件获取的当前坐标与起始坐标的差,就