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 相关文章推荐
js href的用法
May 13 Javascript
JS禁用页面上所有控件的实现方法(附demo源码下载)
Dec 17 Javascript
学习JavaScript鼠标响应事件
Dec 25 Javascript
ECMAScript6快速入手攻略
Jul 18 Javascript
浅析Javascript ES6新增值比较函数Object.is
Aug 24 Javascript
PHP实现记录代码运行时间封装类实例教程
May 08 Javascript
node.js中express中间件body-parser的介绍与用法详解
May 23 Javascript
详解vue-cli脚手架中webpack配置方法
Aug 22 Javascript
解决Vue.js父组件$on无法监听子组件$emit触发事件的问题
Sep 12 Javascript
JavaScript this绑定过程深入详解
Dec 07 Javascript
Vue使用axios出现options请求方法
May 30 Javascript
在webstorm中配置less的方法详解
Sep 25 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 手机归属地查询 api
2010/02/08 PHP
PHP中feof()函数实例测试
2014/08/23 PHP
Laravel 5 学习笔记
2015/03/06 PHP
php身份证号码检查类实例
2015/06/18 PHP
Yii2.0实现的批量更新及批量插入功能示例
2019/01/29 PHP
JS启动应用程序的一个简单例子
2008/05/11 Javascript
Prototype Number对象 学习
2009/07/19 Javascript
js判读浏览器是否支持html5的canvas的代码
2013/11/18 Javascript
一个JavaScript处理textarea中的字符成每一行实例
2014/09/22 Javascript
JavaScript常用字符串与数组扩展函数小结
2016/04/24 Javascript
js获取页面及个元素高度、宽度的代码
2016/04/26 Javascript
jQuery实用小技巧_输入框文字获取和失去焦点的简单实例
2016/08/25 Javascript
使用bootstrap实现多窗口和拖动效果
2016/09/22 Javascript
炫酷的js手风琴效果
2016/10/13 Javascript
原生js仿淘宝网商品放大镜效果
2017/02/28 Javascript
Vue 过渡实现轮播图效果
2017/03/27 Javascript
jQuery EasyUI tree增加搜索功能的实现方法
2017/04/27 jQuery
微信小程序之swiper轮播图中的图片自适应高度的方法
2018/04/23 Javascript
解决vue-cli webpack打包开启Gzip 报错问题
2019/07/24 Javascript
微信小程序聊天功能的示例代码
2020/01/13 Javascript
JavaScript面向对象核心知识与概念归纳整理
2020/05/09 Javascript
Python采集腾讯新闻实例
2014/07/10 Python
Django中使用locals()函数的技巧
2015/07/16 Python
深入理解Python单元测试unittest的使用示例
2017/11/18 Python
分析python切片原理和方法
2017/12/19 Python
python 通过xml获取测试节点和属性的实例
2018/03/31 Python
python 在屏幕上逐字显示一行字的实例
2018/12/24 Python
python3+pyqt5+itchat微信定时发送消息的方法
2019/02/20 Python
浅谈python 中类属性共享的问题
2019/07/02 Python
python 五子棋如何获得鼠标点击坐标
2019/11/04 Python
详解如何在pyqt中通过OpenCV实现对窗口的透视变换
2020/09/20 Python
小学生操行评语大全
2014/04/22 职场文书
商业项目策划方案
2014/06/05 职场文书
大学毕业生个人自荐书
2014/07/02 职场文书
2015年大学班长个人工作总结
2015/04/24 职场文书
董事长年会致辞
2015/07/29 职场文书