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的消息提示插件 DivAlert之旅(二)
Apr 01 Javascript
JavaScript 页面编码与浏览器类型判断代码
Jun 03 Javascript
很棒的学习jQuery的12个网站推荐
Apr 28 Javascript
JS中Iframe之间传值及子页面与父页面应用
Mar 11 Javascript
js简单实现用户注册信息的校验代码
Nov 15 Javascript
跨域传值即主页面与iframe之间互相传值
Dec 09 Javascript
javascript字符串替换及字符串分割示例代码
Dec 12 Javascript
Jquery获取和修改img的src值的方法
Feb 17 Javascript
Javascript表单验证要注意的事项
Sep 29 Javascript
Bootstrap.css与layDate日期选择样式起冲突的解决办法
Apr 07 Javascript
使用vuex解决刷新页面state数据消失的问题记录
May 08 Javascript
JS中的算法与数据结构之队列(Queue)实例详解
Aug 20 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
CodeIgniter针对lighttpd服务器URL重写的方法
2015/06/10 PHP
PHP程序守护进程化实现方法详解
2020/07/16 PHP
Node.js 去掉种子(torrent)文件里的邪恶信息
2015/03/27 Javascript
通过伪协议解决父页面与iframe页面通信的问题
2015/04/05 Javascript
Javascript中的arguments对象
2016/06/20 Javascript
jquery Easyui Datagrid实现批量操作(编辑,删除,添加)
2017/02/20 Javascript
Bootstrap模态框案例解析
2017/03/05 Javascript
解决vue this.$forceUpdate() 处理页面刷新问题(v-for循环值刷新等)
2018/07/26 Javascript
JavaScript刷新页面的几种方法总结
2019/03/28 Javascript
jQuery分组选择器简单用法示例
2019/04/04 jQuery
layui lay-verify form表单自定义验证规则详解
2019/09/18 Javascript
NodeJS模块Buffer原理及使用方法解析
2020/11/11 NodeJs
[02:16]DOTA2英雄基础教程 干扰者
2014/01/15 DOTA
[46:02]DOTA2上海特级锦标赛D组资格赛#2 Liquid VS VP第二局
2016/02/28 DOTA
python处理圆角图片、圆形图片的例子
2014/04/25 Python
python更新列表的方法
2015/07/28 Python
八大排序算法的Python实现
2021/01/28 Python
Python中optparser库用法实例详解
2018/01/26 Python
python 调试冷知识(小结)
2019/11/11 Python
Pytorch中膨胀卷积的用法详解
2020/01/07 Python
Pyspark获取并处理RDD数据代码实例
2020/03/27 Python
Python sorted排序方法如何实现
2020/03/31 Python
python实现在列表中查找某个元素的下标示例
2020/11/16 Python
HTML5实现应用程序缓存(Application Cache)
2020/06/16 HTML / CSS
台湾乐天市场:日本No.1的网路购物网站
2017/03/22 全球购物
美国婴儿用品店:Babies”R”Us
2017/10/12 全球购物
《童年的发现》教学反思
2014/02/14 职场文书
王老吉广告词
2014/03/20 职场文书
品质标语大全
2014/06/21 职场文书
租房协议书样本
2014/08/20 职场文书
法英专业大学生职业生涯规划书范文
2014/09/22 职场文书
导游词400字
2015/02/13 职场文书
通用员工手册范本
2015/05/14 职场文书
2015年国庆节演讲稿范文
2015/07/30 职场文书
php微信小程序解包过程实例详解
2021/03/31 PHP
Python 解决空列表.append() 输出为None的问题
2021/05/23 Python