JS手机端touch事件计算滑动距离的方法示例


Posted in Javascript onOctober 26, 2017

本文实例讲述了JS手机端touch事件计算滑动距离的方法。分享给大家供大家参考,具体如下:

计算手势在手机屏幕上滑动时,手势滑动的距离,代码如下:

function wetherScroll(){
    var startX = startY = endX =endY =0;
    var body=document.getElementsByTagName("body");
    body.bind('touchstart',function(event){
      var touch = event.targetTouches[0];
      //滑动起点的坐标
      startX = touch.pageX;
      startY = touch.pageY;
      // console.log("startX:"+startX+","+"startY:"+startY);
    });
    body.bind("touchmove",function(event){
      var touch = event.targetTouches[0];
      //手势滑动时,手势坐标不断变化,取最后一点的坐标为最终的终点坐标
        endX = touch.pageX;
        endY = touch.pageY;
        // console.log("endX:"+endX+","+"endY:"+endY);
    })
    body.bind("touchend",function(event){
      var distanceX=endX-startX,
        distanceY=endY - startY;
        // console.log("distanceX:"+distanceX+","+"distanceY:"+distanceY);
        //移动端设备的屏幕宽度
        var clientHeight; =document.documentElement.clientHeight;
        // console.log(clientHeight;*0.2);
        //判断是否滑动了,而不是屏幕上单击了
        if(startY!=Math.abs(distanceY)){
 //在滑动的距离超过屏幕高度的20%时,做某种操作
          if(Math.abs(distanceY)>clientHeight*0.2){
 //向下滑实行函数someAction1,向上滑实行函数someAction2
          distanceY <0 ? someAction1():someAction2();
        }
        }
        startX = startY = endX =endY =0;
    })
}

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
jquery弹出框的用法示例(一)
Aug 26 Javascript
微信小程序 loading 详解及实例代码
Nov 09 Javascript
Vue.js教程之计算属性
Nov 11 Javascript
ES6中的箭头函数实例详解
Apr 06 Javascript
纯js实现页面返回顶部的动画(超简单)
Aug 10 Javascript
Vue 2.5.2下axios + express 本地请求404的解决方法
Feb 21 Javascript
Vue父组件调用子组件事件方法
Feb 23 Javascript
vue 过滤器filter实例详解
Mar 14 Javascript
解决vue点击控制单个样式的问题
Sep 05 Javascript
微信小程序中限制激励式视频广告位显示次数(实现思路)
Dec 06 Javascript
Vue实现腾讯云点播视频上传功能的实现代码
Aug 17 Javascript
Node实现搜索框进行模糊查询
Jun 28 Javascript
JavaScript实现二叉树的先序、中序及后序遍历方法详解
Oct 26 #Javascript
JavaScript实现树的遍历算法示例【广度优先与深度优先】
Oct 26 #Javascript
详述 Sublime Text 打开 GBK 格式中文乱码的解决方法
Oct 26 #Javascript
node.js的exports、module.exports与ES6的export、export default深入详解
Oct 26 #Javascript
详解Webstorm 新建.vue文件支持高亮vue语法和es6语法
Oct 26 #Javascript
Node.js中环境变量process.env的一些事详解
Oct 26 #Javascript
Sublime Text新建.vue模板并高亮(图文教程)
Oct 26 #Javascript
You might like
基于mysql的论坛(5)
2006/10/09 PHP
yii框架builder、update、delete使用方法
2014/04/30 PHP
php基于CodeIgniter实现图片上传、剪切功能
2016/05/14 PHP
微信网页授权(OAuth2.0) PHP 源码简单实现
2016/08/29 PHP
PHP正则替换函数preg_replace()报错:Notice Use of undefined constant的解决方法分析
2017/02/04 PHP
详解php语言最牛掰的Laravel框架
2017/11/20 PHP
php微信公众号开发之音乐信息
2018/10/20 PHP
解决json日期格式问题的3种方法
2014/02/02 Javascript
JS获取地址栏参数的几种方法小结
2014/02/28 Javascript
JS使用getComputedStyle()方法获取CSS属性值
2014/04/23 Javascript
用javascript对一个json数组深度赋值示例
2014/07/27 Javascript
JavaScript插件化开发教程(五)
2015/02/01 Javascript
jquery实现页面关键词高亮显示的方法
2015/03/12 Javascript
JavaScript jquery及AJAX小结
2016/01/24 Javascript
从零开始学习Node.js系列教程之设置HTTP头的方法示例
2017/04/13 Javascript
vue 之 css module的使用方法
2018/12/04 Javascript
babel7.x和webpack4.x配置vue项目的方法步骤
2019/05/12 Javascript
jquery实现烟花效果(面向对象)
2020/03/10 jQuery
[00:27]DOTA2次级职业联赛 - Lilith战队宣传片
2014/12/01 DOTA
[01:24]DOTA2上海特锦赛OG战队抵达 专车接机入驻总统套房
2016/02/23 DOTA
[56:13]DOTA2-DPC中国联赛定级赛 LBZS vs Phoenix BO3第一场 1月10日
2021/03/11 DOTA
从零学Python之入门(四)运算
2014/05/27 Python
python: line=f.readlines()消除line中\n的方法
2018/03/19 Python
基于python实现的百度音乐下载器python pyqt改进版(附代码)
2019/08/05 Python
Python使用turtle库绘制小猪佩奇(实例代码)
2020/01/16 Python
Python+OpenCV实现图像的全景拼接
2020/03/05 Python
浅析HTML5中的download属性使用
2019/03/13 HTML / CSS
物业管理大学生个人的自我评价
2013/10/10 职场文书
大学生毕业求职简历的自我评价
2013/10/24 职场文书
水果超市创业计划书
2014/01/27 职场文书
安全宣传标语口号
2014/06/06 职场文书
大专生自我鉴定怎么写
2014/09/16 职场文书
领导欢迎词范文
2015/01/26 职场文书
幼儿园托班教育随笔
2015/08/14 职场文书
PostgreSQL常用字符串分割函数整理汇总
2022/07/07 PostgreSQL
Li list-style-image 图片垂直居中实现方法
2023/05/21 HTML / CSS