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 面向对象的5钟写法
Jul 31 Javascript
JQuery设置和去除disabled属性的5种方法总结
May 16 Javascript
使用GruntJS链接与压缩多个JavaScript文件过程详解
Aug 02 Javascript
简单的代码实现jquery定时器
Nov 17 Javascript
Javascript基础教程之switch语句
Jan 18 Javascript
javascript显式类型转换实例分析
Apr 25 Javascript
jQuery实现向下滑出的二级菜单效果实例
Aug 22 Javascript
基于jQuery和Bootstrap框架实现仿知乎前端动态列表效果
Nov 09 Javascript
Bootstrap 轮播(Carousel)插件
Dec 26 Javascript
w3c编程挑战_初级脚本算法实战篇
Jun 23 Javascript
看看“疫苗查询”小程序有温度的代码
Jul 31 Javascript
Angularjs 根据一个select的值去设置另一个select的值方法
Aug 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
PHP防CC攻击实现代码
2011/12/29 PHP
Laravel框架处理用户的请求操作详解
2019/12/20 PHP
php 使用html5 XHR2实现上传文件与进度显示功能示例
2020/03/03 PHP
一个高效的JavaScript压缩工具下载集合
2007/03/06 Javascript
SharePoint 客户端对象模型 (一) ECMA Script
2011/05/22 Javascript
微信小程序 WXML、WXSS 和JS介绍及详解
2016/10/08 Javascript
js图片切换具体实现代码
2016/10/13 Javascript
javascript实现根据函数名称字符串动态执行函数的方法示例
2016/12/28 Javascript
详解微信小程序 template添加绑定事件
2017/06/23 Javascript
vue源码学习之Object.defineProperty对象属性监听
2018/05/30 Javascript
NodeJS 实现多语言的示例代码
2018/09/11 NodeJs
在layui框架中select下拉框监听更改事件的例子
2019/09/20 Javascript
ES6对象操作实例详解
2020/05/23 Javascript
Vue中用JSON实现刷新界面不影响倒计时
2020/10/26 Javascript
vue element-ui中table合计指定列求和实例
2020/11/02 Javascript
Python open()文件处理使用介绍
2014/11/30 Python
详细解读Python中解析XML数据的方法
2015/10/15 Python
一个月入门Python爬虫学习,轻松爬取大规模数据
2018/01/03 Python
使用Python 统计高频字数的方法
2019/01/31 Python
selenium python 实现基本自动化测试的示例代码
2019/02/25 Python
PyTorch中Tensor的拼接与拆分的实现
2019/08/18 Python
pytorch中交叉熵损失(nn.CrossEntropyLoss())的计算过程详解
2020/01/02 Python
世界上最大的售后摩托车零配件超市:J&P Cycles
2017/12/08 全球购物
英国豪华装饰照明品牌的在线零售商:Inspyer Lighting
2019/12/10 全球购物
求职简历中自我评价
2014/01/28 职场文书
六查六看剖析材料
2014/02/15 职场文书
学生手册评语
2014/05/05 职场文书
婚礼秀策划方案
2014/05/19 职场文书
工地标语大全
2014/06/18 职场文书
2014五年级班主任工作总结
2014/12/05 职场文书
讲座开场白台词和结束语
2015/05/29 职场文书
2015年全民创业工作总结
2015/07/23 职场文书
新年祝酒词大全
2015/08/11 职场文书
幼儿园迎新生欢迎词
2015/09/30 职场文书
导游词之鲁迅祖居
2019/10/17 职场文书
python 如何用map()函数创建多线程任务
2021/04/07 Python