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 相关文章推荐
input输入框的自动匹配(原生代码)
Mar 19 Javascript
js模拟select下拉菜单控件的代码
May 08 Javascript
跟我学习javascript的Date对象
Nov 19 Javascript
JS实现合并两个数组并去除重复项只留一个的方法
Dec 17 Javascript
解读Bootstrap v4 sass设计
May 29 Javascript
JavaScript使用键盘输入控制实现数字验证功能
Aug 19 Javascript
vue如何集成raphael.js中国地图的方法示例
Aug 15 Javascript
ES6中Array.includes()函数的用法
Sep 20 Javascript
通过jquery toggleClass()属性制作文章段落更改背景颜色
May 21 jQuery
如何用webpack4带你实现一个vue的打包的项目
Jun 20 Javascript
Angular4 组件通讯方法大全(推荐)
Jul 12 Javascript
element-ui中按需引入的实现
Dec 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 判断是否是中文/英文/数字示例代码
2013/09/30 PHP
简要剖析PHP的Yii框架的组件化机制的基本知识
2016/03/17 PHP
利用PHP命令行模式采集股票趋势信息
2016/08/09 PHP
PHP数组操作简单案例分析
2016/10/15 PHP
利用php_imagick实现复古效果的方法
2016/10/18 PHP
PHP使用openssl扩展实现加解密方法示例
2020/02/20 PHP
PHP+Redis事务解决高并发下商品超卖问题(推荐)
2020/08/03 PHP
google 搜索框添加关键字实现代码
2010/04/24 Javascript
jquery dialog open后,服务器端控件失效的快速解决方法
2013/12/19 Javascript
JS,Jquery获取select,dropdownlist,checkbox下拉列表框的值(示例代码)
2014/01/11 Javascript
浅谈JavaScript Date日期和时间对象
2014/12/29 Javascript
js实现文本框中输入文字页面中div层同步获取文本框内容的方法
2015/03/03 Javascript
JavaScript实现级联菜单的方法
2015/06/29 Javascript
理解javascript中try...catch...finally
2015/12/25 Javascript
Angular懒加载机制刷新后无法回退的快速解决方法
2016/08/30 Javascript
ES6 Promise对象概念与用法分析
2017/04/01 Javascript
JavaScript在控件上添加倒计时功能的实现代码
2017/07/04 Javascript
JQ图片文件上传之前预览功能的简单实例(分享)
2017/11/12 Javascript
原生JavaScript实现Ajax异步请求
2017/11/19 Javascript
bootstrap Table实现合并相同行
2019/07/19 Javascript
vuex + keep-alive实现tab标签页面缓存功能
2019/10/17 Javascript
Egg Vue SSR 服务端渲染数据请求与asyncData
2019/11/24 Javascript
对numpy数据写入文件的方法讲解
2018/07/09 Python
我喜欢你 抖音表白程序python版
2019/04/07 Python
python实现列表的排序方法分享
2019/07/01 Python
python实现微信自动回复机器人功能
2019/07/11 Python
使用python制作游戏下载进度条的代码(程序说明见注释)
2019/10/24 Python
Python aiohttp百万并发极限测试实例分析
2019/10/26 Python
Python os模块常用方法和属性总结
2020/02/20 Python
Python求两个字符串最长公共子序列代码实例
2020/03/05 Python
python 读取二进制 显示图片案例
2020/04/24 Python
巴西电子产品购物网站:Saldão da Informática
2018/01/09 全球购物
求职信结尾怎么写
2014/05/26 职场文书
2014年扫黄打非工作总结
2014/12/03 职场文书
2015年六一儿童节活动总结
2015/02/11 职场文书
探讨Java中的深浅拷贝问题
2021/06/26 Java/Android