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 toFixed()方法的重写实现精度的统一
Mar 06 Javascript
JS中产生20位随机数以0-9为例也可以是a-z A-Z
Aug 01 Javascript
JavaScript高级教程5.6之基本包装类型(详细)
Nov 23 Javascript
AngularJS创建自定义指令的方法详解
Nov 03 Javascript
js如何判断是否在iframe中及防止网页被别站用iframe嵌套
Jan 11 Javascript
javascript简单写的判断电话号码实例
May 24 Javascript
mockjs,json-server一起搭建前端通用的数据模拟框架教程
Dec 18 Javascript
vue实现点击展开点击收起效果
Apr 27 Javascript
解决Vue2.0 watch对象属性变化监听不到的问题
Sep 11 Javascript
详解Vue CLI 3.0脚手架如何mock数据
Nov 23 Javascript
Javascript原型链及instanceof原理详解
May 25 Javascript
详解Java中String JSONObject JSONArray List转换
Nov 13 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
从零开始 教你如何搭建Discuz!4.1论坛
2006/07/07 PHP
详解PHP显示MySQL数据的三种方法
2008/06/05 PHP
php插入排序法实现数组排序实例
2015/02/16 PHP
yii2.0整合阿里云oss上传单个文件的示例
2017/09/19 PHP
php-msf源码详解
2017/12/25 PHP
PHP日志LOG类定义与用法示例
2018/09/06 PHP
[对联广告] JS脚本类
2006/08/27 Javascript
用 JavaScript 迁移目录
2006/12/18 Javascript
基本jquery的控制tabs打开的数量的代码
2010/10/17 Javascript
javascript淡入淡出效果的实现思路
2012/03/31 Javascript
JavaScript NaN和Infinity特殊值 [译]
2012/09/20 Javascript
用js实现输入提示(自动完成)的实例代码
2013/06/14 Javascript
javascript中数组的定义及使用实例
2015/01/21 Javascript
JavaScript匿名函数用法分析
2015/02/13 Javascript
jQuery+html5+css3实现圆角无刷新表单带输入验证功能代码
2015/08/21 Javascript
Bootstrap每天必学之导航
2015/11/26 Javascript
jQuery实现的点赞随机数字显示动画效果(附在线演示与demo源码下载)
2015/12/31 Javascript
Javascript如何判断数据类型和数组类型
2016/06/22 Javascript
jQuery中deferred对象使用方法详解
2016/07/14 Javascript
js微信应用场景之微信音乐相册案例分享
2017/08/11 Javascript
vue 插值 v-once,v-text, v-html详解
2018/01/19 Javascript
Angular 封装并发布组件的方法示例
2018/04/19 Javascript
vue以组件或者插件的形式实现throttle或者debounce
2019/05/22 Javascript
JavaScript实现点击出现子菜单效果
2021/02/08 Javascript
Python3.6+selenium2.53.6自动化测试_读取excel文件的方法
2019/09/06 Python
Python之指数与E记法的区别详解
2019/11/21 Python
一款利用html5和css3实现的3D立方体旋转效果教程
2016/04/26 HTML / CSS
HTML5中FileReader接口使用方法实例详解
2017/08/26 HTML / CSS
美国孕妇装购物网站:Motherhood Maternity
2019/09/22 全球购物
What's the difference between Debug and Trace class? (Debug类与Trace类有什么区别)
2013/09/10 面试题
金融专业个人求职信
2013/09/22 职场文书
餐厅楼面部长岗位职责范文
2014/02/16 职场文书
四风问题对照检查材料
2014/09/22 职场文书
村主任当选感言
2015/08/01 职场文书
2016年中秋节慰问信
2015/12/01 职场文书
MySQL对数据表已有表进行分区表的实现
2021/11/01 MySQL