• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >游戏开发 > js判断手指滑动方向

js判断手指滑动方向

作者:网络 字体:[增加 减小] 来源:互联网 时间:2020-02-11

网络通过本文主要向大家介绍了js判断手指滑动方向等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

最近有一些微信的项目,虽然页面很简单,但配合手势后的效果却是很不错的。最基本的效果就是手指向上滑,页面配合css3出现一个展开效果,手指向下滑将展开的内容按原路径收起。其实就是一个简单的判断手指滑动方向让页面滚动一屏的高度。

 


 
  1. $("body").on("touchstart", function(e) {

  2. e.preventDefault();

  3. startX = e.originalEvent.changedTouches[0].pageX,

  4. startY = e.originalEvent.changedTouches[0].pageY;

  5. });

  6. $("body").on("touchmove", function(e) {

  7. e.preventDefault();

  8. moveEndX = e.originalEvent.changedTouches[0].pageX,

  9. moveEndY = e.originalEvent.changedTouches[0].pageY,

  10. X = moveEndX - startX,

  11. Y = moveEndY - startY;

  12.  
  13. if ( X > 0 ) {

  14. alert("left 2 right");

  15. }

  16. else if ( X < 0 ) {

  17. alert("right 2 left");

  18. }

  19. else if ( Y > 0) {

  20. alert("top 2 bottom");

  21. }

  22. else if ( Y < 0 ) {

  23. alert("bottom 2 top");

  24. }

  25. else{

  26. alert("just touch");

  27. }

  28. });

判断很简单,touchmove的最后坐标减去touchstart的起始坐标,X的结果如果正数,则说明手指是从左往右划动;X的结果如果负数,则说明手指是从右往左划动;Y的结果如果正数,则说明手指是从上往下划动;Y的结果如果负数,则说明手指是从下往上划动。

这再逻辑上没有任何问题。但在实际操作中,手指的上下滑动其实是很难直上直下的,只要稍微有点斜,就会被X轴的判断先行接管。

那么接下来我们就需要梁逸峰同学附体,加上特别的判断技巧:

 


 
  1. $("body").on("touchstart", function(e) {

  2. e.preventDefault();

  3. startX = e.originalEvent.changedTouches[0].pageX,

  4. startY = e.originalEvent.changedTouches[0].pageY;

  5. });

  6. $("body").on("touchmove", function(e) {

  7. e.preventDefault();

  8. moveEndX = e.originalEvent.changedTouches[0].pageX,

  9. moveEndY = e.originalEvent.changedTouches[0].pageY,

  10. X = moveEndX - startX,

  11. Y = moveEndY - startY;

  12.  
  13. if ( Math.abs(X) > Math.abs(Y) && X > 0 ) {

  14. alert("left 2 right");

  15. }

  16. else if ( Math.abs(X) > Math.abs(Y) && X < 0 ) {

  17. alert("right 2 left");

  18. }

  19. else if ( Math.abs(Y) > Math.abs(X) && Y > 0) {

  20. alert("top 2 bottom");

  21. }

  22. else if ( Math.abs(Y) > Math.abs(X) && Y < 0 ) {

  23. alert("bottom 2 top");

  24. }

  25. else{

  26. alert("just touch");

  27. }

  28. });

增加的判断也很简单,无非就是判断哪个的差值比较大。这样一来基本上就不会出错了。

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

相关文章

  • 2017-06-05 总提示texture没有初始化
  • 2017-06-05 初学者求助xcode写的项目移植到vs2015的问题
  • 2017-06-05 unity3d求两个物体的距离的中点坐标
  • 2017-06-05 当有按键按下的时候,鼠标指针会无限自动回到game中心点,求教怎么解决?
  • 2017-06-05 有哪些好的网站可以买cocos2d游戏源码
  • 2017-06-05 求深圳地区外包项目
  • 2017-06-05 lua中如何获取自定义类的变量值?
  • 2017-06-05 这类cocos2dx写的AI格斗游戏,能去游戏公司干活了吗,诚恳
  • 2022-04-30Unity 3D资源下载
  • 2017-06-05 cocos2dx打包出现VM内存不足怎么解决

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 时间紧迫,求一段用dx8画直线的代码用dx8不是dx9谢谢
    • 如何用unity3d实现pokermango?
    • 趋势:手游app压缩用户转化率越高
    • Unity中使用协程延时执行一个不断执行的函数
    • WPF3d游戏引擎
    • 刚学习java2个月,想找个简单粗暴的游戏引擎自己做做游戏!
    • sqlserver2008找不到类型为“数据库引擎”的服务器?
    • Unity3D建立不了tcp服务器总是被提示“一个封锁操作被。。。。终止”
    • Unity3D的混合问题
    • 我做了一个h5的画布游戏,用requestanimation控制方向移动,按键控制是否按下方向键,但是有点卡,请问大神怎么优化

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有