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 相关文章推荐
location.href 在IE6中不跳转的解决方法与推荐使用代码
Jul 08 Javascript
js 页面关闭前的出现提示的实现代码
May 25 Javascript
关于IE BUG与字符串截取substr的解决办法
Apr 10 Javascript
js实现文字跟随鼠标移动而移动的方法
Feb 28 Javascript
jQuery on()绑定动态元素出现的问题小结
Feb 19 Javascript
JavaScript里 ==与===区别详解
Aug 16 Javascript
深入探究AngularJs之$scope对象(作用域)
Jul 20 Javascript
Angularjs中的验证input输入框只能输入数字和小数点的写法(推荐)
Aug 16 Javascript
你应该知道的几类npm依赖包管理详解
Oct 06 Javascript
基于Vue的SPA动态修改页面title的方法(推荐)
Jan 02 Javascript
JS栈stack类的实现与使用方法示例
Jan 31 Javascript
JS实现按比例缩小图片宽高
Aug 24 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+Mysql日期时间如何转换(UNIX时间戳和格式化日期)
2012/07/15 PHP
php中spl_autoload详解
2014/10/17 PHP
Zend Framework教程之MVC框架的Controller用法分析
2016/03/07 PHP
PHP记录页面停留时间的方法
2016/03/30 PHP
PHP实现通过CURL上传文件功能示例
2018/05/30 PHP
laravel 解决路由除了根目录其他都404的问题
2019/10/18 PHP
给Function做的OOP扩展
2009/05/07 Javascript
jQuery EasyUI API 中文文档 - ComboTree组合树
2011/10/11 Javascript
JavaScript移除数组元素减少长度的方法
2013/09/05 Javascript
JS获取CSS样式(style/getComputedStyle/currentStyle)
2016/01/19 Javascript
Angularjs结合Bootstrap制作的一个TODO List
2016/08/18 Javascript
Bootstrap作品展示站点实战项目2
2016/10/14 Javascript
jquery.uploadifive插件怎么解决上传限制图片或文件大小问题
2017/05/08 jQuery
Bootstrap 模态对话框只加载一次 remote 数据的完美解决办法
2017/07/09 Javascript
JS控制鼠标拒绝点击某一按钮的实例
2017/12/29 Javascript
vue打包相关细节整理(小结)
2018/09/28 Javascript
浅谈让你的代码更简短,更整洁,更易读的ES6小技巧
2018/10/25 Javascript
JS实现滑动拼图验证功能完整示例
2020/03/29 Javascript
修改Vue打包后的默认文件名操作
2020/08/12 Javascript
Python urllib模块urlopen()与urlretrieve()详解
2013/11/01 Python
python中正则的使用指南
2016/12/04 Python
TensorFlow实现Logistic回归
2018/09/07 Python
Python面向对象程序设计之私有属性及私有方法示例
2019/04/08 Python
Python+PyQT5的子线程更新UI界面的实例
2019/06/14 Python
python实现五子棋人机对战游戏
2020/03/25 Python
python基于socket进行端口转发实现后门隐藏的示例
2019/07/25 Python
Python 实现数组相减示例
2019/12/27 Python
python实现简单的学生管理系统
2021/02/22 Python
西班牙手机之家:Phone House
2018/10/18 全球购物
DNA测试:Orig3n
2019/03/01 全球购物
Kipling意大利官网:世界著名的时尚休闲包袋品牌
2019/06/05 全球购物
英国Iceland杂货店:网上食品购物
2020/12/16 全球购物
环保公益广告语
2014/03/13 职场文书
机械设计制造及其自动化专业求职信
2014/06/17 职场文书
幼儿教师辞职信范文
2015/03/02 职场文书
Vue全家桶入门基础教程
2021/05/14 Vue.js