之前开发一个小游戏在手机和ipad上都可以正常使用,后期需要扩展h5业务,发现uni-app中touch事件失效了,使用jquery相关事件代替实现了。

原代码:

<button type="default" class="btn" :style="'transform: translateX('+Distance+'px)'" @touchstart="touchtStarEvent" @touchmove="touchMoveEvent" @touchend="touchEndEvent">滑动按钮
</button>
//开始事件
touchtStarEvent(e){this.ClientX = e.changedTouches[0]['clientX'];this.isMove = false;
},
//移动事件
touchMoveEvent(e){let _dir = e.changedTouches[0]['clientX']-this.ClientX;    if(_dir<0&&_dir>-50){this.isMove = true;this.Distance = _dir;}
},
//结束事件
touchEndEvent(e){if(this.isMove){this.Distance = 0;this.isMove = false;}
},

引用jquery插件

// #ifdef H5
import jQuery from '@/utils/jquery-3.5.1.min.js'
// #endif

jQuery下载地址:点击下载

由于在h5中,touch事件无触发,这里通过jquery的mousedown、mousemove、mouseup、mouseout代替实现touchstart、touchmove、touchend事件。获取鼠标的移动参数后,转成原touch事件所需要的changedTouches数据,这样直接触发原事件即可。

// #ifdef H5
var _isDown = false, that = this;//开始事件
jQuery(document).on('mousedown', '.btn', function(e){if(!_isDown) _isDown = true;that.touchtStarEvent({changedTouches: [{"clientX": e.pageX, "clientY": e.pageY}]});
});
//移动事件
jQuery(document).on('mousemove', '.btn', function(e){if(_isDown){that.touchMoveEvent({changedTouches: [{"clientX": e.pageX, "clientY": e.pageY}]});}
});
//结束事件
jQuery(document).on('mouseup', '.btn', function(e){if(_isDown) _isDown = false;that.touchEndEvent({changedTouches: [{"clientX": e.pageX, "clientY": e.pageY}]});
});
//结束事件
jQuery(document).on('mouseout', '.btn', function(e){if(_isDown) _isDown = false;that.touchEndEvent({changedTouches: [{"clientX": e.pageX, "clientY": e.pageY}]});
});
// #endif

以上是个人项目中移动物体示例,仅供参考。

uniapp中touchstart、touchmove和touchend在H5中无法触发,可通过jQuery添相应事件代替相关推荐

  1. 触摸事件中touchstart、touchmove、touchend、touchcancel事件应用方法及实例

    触摸事件中touchstar.touchmove.touchend.touchcancel事件应用方法及实例 一. 分享到: 前面我们介绍过移动设备中一些设备事件,例如手机旋转90度.倾斜等设置放置姿 ...

  2. 移动端的touchstart,touchmove,touchend事件中的获取当前touch位置

    前提:touchstart,touchmove,touchend这三个事件可以通过原生和jq绑定. 原生:document.querySelector("#aa").addEven ...

  3. Vue中使用touchstart、touchmove、touchend与click冲突

    今天做项目,突然发现了这个问题.就是在移动端,一个元素既注册有滑动事件,又注册有点击事件时就会出现一些问题. 比如我就不知道滑动事件的优先级是大于点击事件的,而当我们只想执行点击事件而不想触发滑动时间 ...

  4. 移动端开发touchstart,touchmove,touchend事件详解和项目

    移动端开发touchstart,touchmove,touchend事件详解和项目 最近在做移动端的开发,在一个"服务商管理"页面使用到了触摸事件"touchstart& ...

  5. javaScript -- touch事件详解(touchstart、touchmove和touchend)

    HTML5中新添加了很多事件,但是由于他们的兼容问题不是很理想,应用实战性不是太强,所以在这里基本省略,咱们只分享应用广泛兼容不错的事件,日后随着兼容情况提升以后再陆续添加分享.今天为大家介绍的事件主 ...

  6. 关于移动端的touch事件(touchstart, touchmove, touchend,touchcancel)

    移动端的touch事件 四种touch事件 touchstart: //手指放到屏幕上时触发 touchmove: //手指在屏幕上滑动式触发 touchend: //手指离开屏幕时触发 touchc ...

  7. 移动端的触屏四个方法:touchstart,touchmove,touchend,touchcancel

    移动端新增了4个与手指触摸相关的事件 touchstart:手指触摸手机屏幕时触发 touchmove:手指在手机屏幕移动时触发 touchend:手指离开手机屏幕时触发 touchcancel:系统 ...

  8. 用touchstart、touchmove、touchend简陋实现左右滑动【触摸事件】

    touchstart事件:当一开始触摸时所获取触发的[就算不滑动也会触发] touchend事件:当离开触摸屏时所触发的事件 touchmove事件:当你触摸时滑动时连续发生的事件 刚开始触碰,目的要 ...

  9. 触摸事件中touchstar、touchmove、touchend、touchcancel事件应用方法及实例

    触摸事件中touchstar.touchmove.touchend.touchcancel事件应用方法及实例 一. 分享到: 前面我们介绍过移动设备中一些设备事件,例如手机旋转90度.倾斜等设置放置姿 ...

最新文章

  1. 特斯拉Model 3国内起售价下调至23.59万元
  2. 动态增删表格行(纯JS写法)
  3. 多台服务器通过ssh 无密钥直接登陆主机
  4. java中怎么固定间距_java中的GridBagLayout是怎么调组件间距的...
  5. MTP 多媒体传输协议
  6. 通俗地讲清楚fit_transform()和transform()的区别
  7. 蜂鸟智游大数据:“人在囧途”的春运,航空公司们可操碎了心
  8. javascript编辑器
  9. ssas 度量值属性_SSAS多维立方体中的初始属性和度量
  10. 通过Git进行分支管理
  11. 模板引擎 Velocity
  12. 力扣-387 字符串中的第一个唯一字符
  13. c# winform gridview 动态按钮_C#窗体Winform,使用实时图表:折线图、柱状图
  14. OTT TV 与 IPTV 的区别
  15. 极客大学python训练营目录_极客大学算法训练营笔记
  16. ubuntu 挂载U盘 NTFS
  17. [转]一个IT人的辞职信:怀着梦想去远行!
  18. java 集合之Interface Map<K,V> HashMap实现类
  19. 《没那么简单》-黄小琥
  20. 2020倒计时,大厂核心送给每一个脚踏实地努力着的Android程序员,逆风前行

热门文章

  1. 【学习日志】2023.01.20 C# PokemonManager
  2. 手撕SparkSQL五大JOIN的底层机制
  3. AI-WEB-1.0
  4. 计算机接口与通信教学大纲,接口与通信教学大纲.doc
  5. 【创建索引的三种方式】
  6. 「硬见小百科」4个方面!详解电容、电感的相位差是如何产生的
  7. 【两步】教你学会画红黑树
  8. 微信小程序案例---本地生活
  9. 蓝桥杯单片机比赛准备程序
  10. 多个微信号统一管理功能,可实时掌握公司运营情况!