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函数中的arguments参数
Aug 01 Javascript
Javascript中的delete介绍
Sep 02 Javascript
使用Math.floor与Math.random取随机整数的方法详解
May 07 Javascript
getAsDataURL在Firefox7.0下无法预览本地图片的解决方法
Nov 15 Javascript
js 立即调用的函数表达式如何写
Jan 12 Javascript
js通过iframe加载外部网页的实现代码
Apr 05 Javascript
JavaScript中Number.MIN_VALUE属性的使用示例
Jun 04 Javascript
你知道setTimeout是如何运行的吗?
Aug 16 Javascript
Cookies 和 Session的详解及区别
Apr 21 Javascript
vue弹窗消息组件的使用方法
Sep 24 Javascript
vue选项卡切换登录方式小案例
Sep 27 Javascript
vue elementui tree 任意级别拖拽功能代码
Aug 31 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
删除无限级目录与文件代码共享
2006/07/12 PHP
PHP 批量更新网页内容实现代码
2010/01/05 PHP
php实现按天数、星期、月份查询的搜索框
2016/05/02 PHP
详谈PHP面向对象中常用的关键字和魔术方法
2017/02/04 PHP
PDO::commit讲解
2019/01/27 PHP
PHP 计算至少是其他数字两倍的最大数的实现代码
2020/05/26 PHP
javascript 遍历验证所有文本框的值
2009/08/27 Javascript
JS实现淘宝幻灯片效果的实现方法
2013/03/22 Javascript
利用JQuery制作符合Web标准的QQ弹出消息
2014/01/14 Javascript
用IE重起计算机或者关机的示例代码
2014/03/10 Javascript
JavaScript中使用arguments获得函数传参个数实例
2014/08/27 Javascript
javascript日期格式化方法小结
2015/12/17 Javascript
Jquery实现遮罩层的简单实例(就是弹出DIV周围都灰色不能操作)
2016/07/14 Javascript
AngularJS实现表单验证功能
2017/01/09 Javascript
解决vue2.x中数据渲染以及vuex缓存的问题
2017/07/13 Javascript
js实现鼠标拖拽多选功能示例
2017/08/01 Javascript
js实现鼠标单击Tab表单切换效果
2018/05/16 Javascript
使用ng-packagr打包Angular的方法示例
2018/09/21 Javascript
PM2自动部署代码步骤流程总结
2018/12/10 Javascript
[04:29]DOTA2亚洲邀请赛小组赛第一日 TOP10精彩集锦
2015/02/01 DOTA
使用PYTHON接收多播数据的代码
2012/03/01 Python
python输入错误后删除的方法
2019/10/12 Python
python实现超市管理系统(后台管理)
2019/10/25 Python
Jupyter notebook命令和编辑模式常用快捷键汇总
2020/11/17 Python
Python中lru_cache的使用和实现详解
2021/01/25 Python
医学护理系毕业生求职信
2013/10/01 职场文书
师范生实习自我鉴定
2013/11/01 职场文书
大学生村官典型材料
2014/01/12 职场文书
总经理岗位职责描述
2014/02/08 职场文书
《水乡歌》教学反思
2014/04/24 职场文书
自我推荐信范文
2014/05/09 职场文书
运动会闭幕式致辞
2015/07/29 职场文书
获奖感言范文
2015/07/31 职场文书
MySQL 使用事件(Events)完成计划任务
2021/05/24 MySQL
MySQL CHAR和VARCHAR该如何选择
2021/05/31 MySQL