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 相关文章推荐
javascript中&quot;/&quot;运算符常见错误
Oct 13 Javascript
基于JavaScript实现通用tab选项卡(通用性强)
Jan 07 Javascript
JS 通过系统时间限定动态添加 select option的实例代码
Jun 09 Javascript
DOM中事件处理概览与原理的全面解析
Aug 16 Javascript
JS转换HTML转义符的方法
Aug 24 Javascript
jQuery阻止移动端遮罩层后页面滚动
Mar 15 Javascript
Vue.js事件处理器与表单控件绑定详解
Mar 20 Javascript
Javascript实现信息滚动效果
May 18 Javascript
详解webpack-dev-server的简单使用
Apr 02 Javascript
详解Node.js一行命令上传本地文件到服务器
Apr 22 Javascript
利用JS判断元素是否为数组的方法示例
Jan 08 Javascript
微信小程序实现拍照和相册选取图片
May 09 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连接SQLServer2005的实现方法(附ntwdblib.dll下载)
2012/07/02 PHP
关于PHP中Session文件过多的问题及session文件保存位置
2016/03/17 PHP
Laravel事件监听器用法实例分析
2019/03/12 PHP
脚本收藏iframe
2006/07/21 Javascript
js编写trim()函数及正则表达式的运用
2013/10/24 Javascript
JS如何实现文本框随文本的长度而增长
2015/07/30 Javascript
Javascript字符串常用方法详解
2016/07/21 Javascript
jQuery插件jquery.kxbdmarquee.js实现无缝滚动效果
2017/02/15 Javascript
React Native使用百度Echarts显示图表的示例代码
2017/11/07 Javascript
vue项目国际化vue-i18n的安装使用教程
2018/03/14 Javascript
vue项目base64字符串转图片的实现代码
2018/07/13 Javascript
详解vue-cli脚手架中webpack配置方法
2018/08/22 Javascript
浅谈layui使用模板引擎动态渲染元素要注意的问题
2019/09/14 Javascript
Tornado服务器中绑定域名、虚拟主机的方法
2014/08/22 Python
python计算N天之后日期的方法
2015/03/31 Python
python基础入门学习笔记(Python环境搭建)
2016/01/13 Python
python实现字符串连接的三种方法及其效率、适用场景详解
2017/01/13 Python
Python实现矩阵相乘的三种方法小结
2018/07/26 Python
python selenium 弹出框处理的实现
2019/02/26 Python
Python音频操作工具PyAudio上手教程详解
2019/06/26 Python
django rest framework 实现用户登录认证详解
2019/07/29 Python
pytorch的batch normalize使用详解
2020/01/15 Python
python通过安装itchat包实现微信自动回复收到的春节祝福
2020/01/19 Python
Pycharm+Python工程,引用子模块的实现
2020/03/09 Python
关于python 的legend图例,参数使用说明
2020/04/17 Python
Tensorflow使用Anaconda、pycharm安装记录
2020/07/29 Python
英国露营设备和户外服装购物网站:Simply Hike
2019/05/05 全球购物
司机检讨书
2014/02/13 职场文书
世博会口号
2014/06/20 职场文书
成本会计岗位职责
2015/02/03 职场文书
致地震灾区的慰问信
2015/03/23 职场文书
简单了解 MySQL 中相关的锁
2021/05/25 MySQL
MySQL系列之十三 MySQL的复制
2021/07/02 MySQL
Python干货实战之八音符酱小游戏全过程详解
2021/10/24 Python
Android使用EventBus发送消息,Fragment中接收消息的方法会执行多次
2022/04/24 Java/Android
Python实战实现爬取天气数据并完成可视化分析详解
2022/06/16 Python