解决部分安卓touchend不触发问题
问题描述:
js的触屏事件,主要有三个事件:touchstart,touchmove,touchend。
这三个事件最重要的属性是 pageX和 pageY,表示X坐标,Y坐标。
touchstart=在触摸开始时触发事件
touchend=在触摸结束时触发事件
touchmove=这个事件比较奇怪,按道理在触摸到过程中不断激发这个事件才对,但是在我的 Android 中,在 touchstart 激发后激发一次,然后剩余的都和 touchend 差不多同时激发。
这三个事件都都有一个 timeStamp 的属性,查看 timeStamp 属性,可以看到顺序是 touchstart -> touchmove ->touchmove -> … -> touchmove ->touchend
第一种方案:
在监听touchstart或者touchmove事件的函数里,阻止事件的默认行为event.preventDefault(),那么到touchend就能正常触发
<div class="btn" @touchstart="touchstart" @touchend="touchend"></div>touchend(event) {//松开按键event.preventDefault();}
第二种方案:
同时绑定touchcancel和touchend事件,这样在安卓上就能通过触发touchcancel来重新展示我们的按钮。
<div class="btn" @touchstart="touchstart" @touchend="touchend" @touchend="touchcancel"></div>
touchend(event) {
//松开按键
}
第三种方案:
阻止任何父事件的 event.stopPropagation()行为,那么到touchend就能正常触发。
<div class="btn" @touchstart="touchstart" @touchend="touchend"></div>touchend(event) {//松开按键//阻止任何父事件处理程序被执行event.stopPropagation();}
第四种方案:
问题:
如果触发了 touchmove, touchend 就不会被触发了, 而且 touchmove 没有持续触发。
解决方法:
只要在 touchstart 的时候调用下 event.preventDefault(); 即可让其他事件都正常被触发了。
$(document).on("touchstart",".btn-highlight",function(){$(this).addClass("hover");}).on("touchmove",".btn-highlight",function(event){event.preventDefault();}).on("touchcancel touchend",".btn-highlight",function(event){$(this).removeClass("hover");});
解决部分安卓touchend不触发问题相关推荐
- 2015.1.10 解决DataGridView SelectionChanged事件自动触发问题
2015.1.10 解决DataGridView SelectionChanged事件自动触发问题 参考文章: (1)2015.1.10 解决DataGridView SelectionChanged ...
- android8卡顿,Android 8.0系统曝光,解决了安卓系统卡顿的问题
原标题:Android 8.0系统曝光,解决了安卓系统卡顿的问题 8.0拟于今年5月17-19日召开的2017年谷歌I/O大会上正式宣布,之前已经曝光了该系统的一些特性,例如开发代号为奥利奥(Oero ...
- 鸿蒙系统卡顿解决方法,鸿蒙比安卓性能提升60%,还解决了安卓卡顿的问题,谷歌压力山大...
鸿蒙比安卓性能提升60%,还解决了安卓卡顿的问题,谷歌压力山大 手机是大家生活中的必备设备,并且大家对于手机的了解程度可以说是很深刻了,知道一部手机想要使用的时间久的关键就是处理器和内存.内存小的手机 ...
- android拓展内存卡,都取消存储卡拓展,而它却解决了安卓手机的大问题
原标题: 都取消存储卡拓展,而它却解决了安卓手机的大问题 一直以来,安卓手机就因为其系统的开放性.可扩容等优点成为了目前绝大多数消费者选购的目标,但在智能手机飞速发展的今天,为了让智能手机更加轻薄,传 ...
- airpods安卓延迟怎么解决_安卓手机投屏为什么没有声音,看AWIND奇机怎么解决的...
安卓手机投屏为什么没有声音,看AWIND奇机怎么解决的 安卓手机投屏,为什么没有声音?我们用安卓手机投屏电视.电脑进行PPT演示.数据讲解的时候都是没有声音的,而看网络电视是有声音的,这是为什么呢? ...
- 安卓手机玩游戏卡顿怎么解决_安卓手机卡顿怎么办?5招教你变流畅,继续用三五年,媲美iPhone...
原标题:安卓手机卡顿怎么办?5招教你变流畅,继续用三五年,媲美iPhone 同事经常跟我说这一句话,永远不要相信安卓手机不卡的鬼话.还说只要是国产手机,买来第1年绝对不会卡,第2年开始绝对卡到你怀疑人 ...
- 安卓手机玩游戏卡顿怎么解决_安卓手机卡顿如何解决?教你四招,流畅度立刻飙升!...
原标题:安卓手机卡顿如何解决?教你四招,流畅度立刻飙升! 自从苹果手机进入中国市场,iOS与安卓用户之间就争议不断,主要原因还是手机卡顿问题.早些年,iOS流畅度遥遥领先,许多安卓用户都转为了苹果粉, ...
- 解决JS双击事件dblclick触发时,同时会执行click事件中的语句
双击dblclick事件,同时会执行click事件中的语句,当需要为一个元素同时添加这两个事件时,显然这不是我们想要的结果,举个实例,在最近做的canvas开发中使用鼠标画区域,鼠标单击一下开始画,鼠 ...
- 解决H5安卓自带浏览器video层级问题
一.问题 video标签在安卓自带浏览器下会默认处于最高层级.且会自动fixed在页面上方,loop属性失效 通常如果需要video自动播放,我们会这样写: <videostyle={{ wid ...
最新文章
- [数位dp] spoj 10738 Ra-One Numbers
- python内置函数sorted(x)的作用是_Python内置filter与sorted函数
- Mac 技术篇-Oracle数据库官方连接工具SQL Developer的安装与连接演示
- 点一万个赞:商汤SiamRPN目标跟踪最强算法开源
- LeetCode5382. HTML 实体解析器
- asp.net应用百度编辑器(UEditor)上传图片跟上次附件不成功的解决办法
- 反射获取类的几种方法
- 华为透露中国首个开源基金会将于近期正式运营!
- 服务器间 存活状态,Shell脚本监控LVS后台服务器存活状态
- 怎么实现多用户同时远程连接到一台电脑上
- 快捷命令查看电脑系统信息
- 熬夜肝出囊括Java后端95%的面试题解析
- javascript 图片特效算法
- auto CAD 二次开发 c#.net 之JIG画多段线(polyline)
- 89年女孩,工作在上海征婚
- 梦回江南 烟雨朦胧中 相思泪 不常有
- BMZCTF 网鼎杯 2018 minified
- Remove from Sidebar后找回
- C语言求两个数的较大值
- Unity Atlas
热门文章
- Python基础(十五)——函数
- 新型追踪方式之——浏览器指纹(浏览器指纹插件)
- Android获取通话记录的未接来电、自定义通知栏事件处理
- 迷信、强化学习与认知的若干思考
- 如何将音频里的伴奏提取出来
- bl系列刀片(blade)服务器,产品技术-HPE Integrity BL870c i6 刀片动能服务器-新华三集团-H3C...
- unity3D新建项目无限读条怎么解决
- Kinect1代+KinectSDK1.8+OpenNI2.2+NITE2.0+Opencv2.4.10环境配置(2)
- C#练习题答案: 匕首【难度:1级】--景越C#经典编程题库,1000道C#基础练习题等你来挑战
- 【LeetCode】罗马数字转整数