JS实现移动端判断上拉和下滑功能


Posted in Javascript onAugust 07, 2017

一、手指触屏,利用touchstart和touchend计算前后滑动距离,判断是上拉还是下滑。

二、js中距离:pageY、clientY、offsetY的区别:

       offsetY:相对于父节点的偏移距离。

       clientY:相对于浏览器,滚轮距离不算在内。

       pageY:相对于浏览器,滚轮滚动的距离算在内;本例中,用pageY,触屏时记录位置-startY,结束时记录-endY,两个相减以正负判断是上移还是下滑。 

三、touchstart有touches属性,touchend有changedTouches属性,两个属性中分别有pageY、pageX信息。

//滑动处理 
    var startX, startY; 
    document.addEventListener('touchstart',function (ev) { 
      startX = ev.touches[0].pageX; 
      startY = ev.touches[0].pageY; 
    }, false); 
    document.addEventListener('touchend',function (ev) { 
      var endX, endY; 
      endX = ev.changedTouches[0].pageX; 
      endY = ev.changedTouches[0].pageY; 
      var direction = GetSlideDirection(startX, startY, endX, endY); 
      switch(direction) { 
        case 0: 
            alert("无操作"); 
          break; 
        case 1: 
          // 向上 
          alert("up"); 
          break; 
        case 2: 
          // 向下 
          alert("down"); 
          break; 
 
        default: 
      } 
    }, false);

四、

function GetSlideDirection(startX, startY, endX, endY) { 
      var dy = startY - endY; 
      //var dx = endX - startX; 
      var result = 0; 
      if(dy>0) {//向上滑动 
        result=1; 
      }else if(dy<0){//向下滑动 
        result=2; 
      } 
      else 
      { 
        result=0; 
      } 
      return result; 
    }

总结

以上所述是小编给大家介绍的JS实现移动端判断上拉和下滑功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
JQUERY获取form表单值的代码
Jul 17 Javascript
yui3的AOP(面向切面编程)和OOP(面向对象编程)
May 01 Javascript
Javascript实现倒计时(防页面刷新)实例
Dec 13 Javascript
JavaScript中双符号的运算详解
Mar 12 Javascript
bootstrap弹出层的多种触发方式
May 10 Javascript
Javarscript中模块(module)、加载(load)与捆绑(bundle)详解
May 28 Javascript
浅谈JS中的反柯里化( uncurrying)
Aug 17 Javascript
如何用input标签和jquery实现多图片的上传和回显功能
May 16 jQuery
JS中的防抖与节流及作用详解
Apr 01 Javascript
微信小程序动画组件使用解析,类似vue,且更强大
Aug 01 Javascript
jQuery zTree插件使用简单教程
Aug 16 jQuery
iview实现动态表单和自定义验证时间段重叠
Jan 10 Javascript
在iframe中使bootstrap的模态框在父页面弹出问题
Aug 07 #Javascript
JS判断微信扫码的方法
Aug 07 #Javascript
AngularJs每天学习之总体介绍
Aug 07 #Javascript
关于webpack2和模块打包的新手指南(小结)
Aug 07 #Javascript
BootStrap Fileinput插件和Bootstrap table表格插件相结合实现文件上传、预览、提交的导入Excel数据操作步骤
Aug 07 #Javascript
ES6新增数据结构WeakSet的用法详解
Aug 07 #Javascript
bootstrap Table插件使用demo
Aug 07 #Javascript
You might like
PHP中cookies使用指南
2007/03/16 PHP
php mssql 数据库分页SQL语句
2008/12/16 PHP
谈谈新手如何学习PHP 默默经典版本
2009/08/04 PHP
PHP下常用正则表达式整理
2010/10/26 PHP
浅析PHP递归函数返回值使用方法
2013/02/18 PHP
thinkPHP中分页用法实例分析
2015/12/26 PHP
thinkphp5.1 文件引入路径问题及注意事项
2018/06/13 PHP
CSS中一些@规则的用法小结
2021/03/09 HTML / CSS
JavaScript实现Sleep函数的代码
2007/03/04 Javascript
点击下载链接 弹出页面实现代码
2009/10/01 Javascript
杨氏矩阵查找的JS代码
2013/03/21 Javascript
jQuery中:header选择器用法实例
2014/12/29 Javascript
JavaScript将Web页面内容导出到Word及Excel的方法
2015/02/13 Javascript
Angularjs中如何使用filterFilter函数过滤
2016/02/06 Javascript
Angularjs中使用Filters详解
2016/03/11 Javascript
jQuery实现Select左右复制移动内容
2016/08/05 Javascript
JavaScript微信定位功能实现方法
2016/11/29 Javascript
jquery实现页面加载效果
2017/02/21 Javascript
jquery实现下拉框左右选择功能
2017/02/21 Javascript
Express URL跳转(重定向)的实现方法
2017/04/07 Javascript
JavaScript箭头(arrow)函数详解
2017/06/04 Javascript
React为 Vue 引入容器组件和展示组件的教程详解
2018/05/03 Javascript
jQuery实现的简单手风琴效果示例
2018/08/29 jQuery
JS编写兼容IE6,7,8浏览器无缝自动轮播
2018/10/12 Javascript
pm2发布node配置文件ecosystem.json详解
2019/05/15 Javascript
基于openlayers实现角度测量功能
2020/09/28 Javascript
[01:08:10]2014 DOTA2国际邀请赛中国区预选赛 SPD-GAMING VS LGD-CDEC
2014/05/22 DOTA
跟老齐学Python之数据类型总结
2014/09/24 Python
Python 私有属性和私有方法应用场景分析
2020/06/19 Python
如何利用Python写个坦克大战
2020/11/18 Python
FC-Moto瑞典:欧洲最大的摩托车服装和头盔商店之一
2018/11/27 全球购物
乌克兰在线商店的价格比较:Price.ua
2019/07/26 全球购物
Groupon西班牙官方网站:在线优惠券和交易,节省高达70%
2021/03/13 全球购物
政风行风评议整改方案
2014/09/15 职场文书
解约证明模板
2015/06/19 职场文书
2016年寒假生活小结
2015/10/10 职场文书