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 相关文章推荐
地址栏上的一段语句,改变页面的风格。(教程)
Apr 02 Javascript
js类中的公有变量和私有变量
Jul 24 Javascript
XHTML下,JS浮动代码失效的问题
Nov 12 Javascript
jQuery动态添加的元素绑定事件处理函数代码
Aug 02 Javascript
js验证是否为数字的总结
Apr 14 Javascript
使用微信内嵌H5网页解决JS倒计时失效问题
Jan 13 Javascript
基于JavaScript实现无限加载瀑布流
Jul 21 Javascript
聊聊Vue.js的template编译的问题
Oct 09 Javascript
Vue2 轮播图slide组件实例代码
May 31 Javascript
JavaScript实现动态添加、移除元素或属性的方法分析
Jan 03 Javascript
Vue实现导航栏的显示开关控制
Nov 01 Javascript
JavaScript使用canvas绘制坐标和线
Apr 28 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通过文件流方式复制文件的方法
2015/03/13 PHP
thinkPHP5.0框架API优化后的友好性分析
2017/03/17 PHP
PHP实现的分解质因数操作示例
2018/08/01 PHP
php链式操作的实现方式分析
2019/08/12 PHP
Thinkphp 框架扩展之应用模式实现方法分析
2020/04/27 PHP
PHP基于进程控制函数实现多线程
2020/12/09 PHP
由Javascript实现的页面日历
2011/11/04 Javascript
javascript继承之为什么要继承
2012/11/10 Javascript
基于javascript 闭包基础分享
2013/07/10 Javascript
JS实现图片横向滚动效果示例代码
2013/09/04 Javascript
js简单实现让文本框内容逐个字的显示出来
2013/10/22 Javascript
js实现同一页面多个不同运动效果的方法
2015/04/10 Javascript
readonly和disabled属性的区别
2015/07/26 Javascript
jQuery左右滚动支持图片放大缩略图图片轮播代码分享
2015/08/26 Javascript
JavaScript的继承实现小结
2017/05/07 Javascript
angularJS 发起$http.post和$http.get请求的实现方法
2017/05/18 Javascript
收藏AngularJS中最重要的核心功能
2017/07/09 Javascript
vue2利用Bus.js如何实现非父子组件通信详解
2017/08/25 Javascript
详解Vue如何支持JSX语法
2017/11/10 Javascript
微信小程序搜索框样式并实现跳转到搜索页面(小程序搜索功能)
2020/03/10 Javascript
如何解决jQuery 和其他JS库的冲突
2020/06/22 jQuery
[02:08:58]2014 DOTA2国际邀请赛中国区预选赛 Ne VS CIS
2014/05/22 DOTA
[01:04:20]完美世界DOTA2联赛PWL S2 LBZS vs Forest 第一场 11.29
2020/12/02 DOTA
python函数缺省值与引用学习笔记分享
2013/02/10 Python
PyQt5实现简单数据标注工具
2019/03/18 Python
pytorch多GPU并行运算的实现
2019/09/27 Python
opencv之为图像添加边界的方法示例
2019/12/26 Python
推荐WEB开发者最佳HTML5和CSS3代码生成器
2015/11/24 HTML / CSS
大学生军训广播稿
2014/01/24 职场文书
出国英文推荐信
2014/05/10 职场文书
合伙购房协议样本
2014/10/06 职场文书
企业介绍信范文
2015/01/30 职场文书
师范生教育见习总结
2015/06/23 职场文书
幼儿园安全管理制度
2015/08/05 职场文书
决心书格式范文
2015/09/23 职场文书
幼儿园开学家长寄语(2016秋季)
2015/12/03 职场文书