关于touch事件的使用 (touchStart touchMove touchEnd(不触发 android 4.0以上)) 滑动的使用
最近在移动端使用touch事件的时候,遇到了一些问题 ,下面是一些心得,
手机端经常会有有一些上拉加载,下拉刷新, 左右滑动删除的应用场景, 在不借助第三方插件的时候,无疑会用到touch事件,在谷歌浏览器开发时并没有出现任何问题,结果在手机端测试时各种问题便出来了,
亲测在 Android 4.0 上面的浏览器手指页面上做滑动操作,然后手指离开,结果不会触发 touchend 事件。同样的操作在 Android 2.x / iOS 却会会正常触发 touchend 事件。
在查阅了网上的资料后发现在touchstart或者touchmove事件里面阻止默认行为后会解决上述问题, 代码如下 e.preventDefault();
验证后发现确实可以了,touchend事件可以正常触发,但另一个问题又出来下,在阻止了默认行为后,发现页面滚动效果也没法实现了。
又是一番查阅资料,毕竟对应的比较好scroll等插件都可以实现对应的功能,原来在他们的代码中在禁止掉默认行为的时候都加入判断,
就是在什么样的条件下或者在什么样的行为下我禁止默认行为,以触发对应的touchend事件,反之不操作,
举个例子 w为横向移动距离 h为纵向移动距离
var w = distancex<0?distancex*-1:distancex;
var h = distancey<0?distancey*-1:distancey; if (w<h) { e.preventDefault(); /* 你的代码*/}
意思为纵向距离比较大时候我禁止默认行为,这样对应行为下的touchend事件就会触发,而当x方向滑动距离比较大的时候则不禁止默认行为,对应左右方向的滚动效果也不会被禁止,就实现了对应的需求。
上面也就是抛砖引玉了,根据大家的需求可酌情个更改, 有什么更好的方式可以互相交流
关于touch事件的使用 (touchStart touchMove touchEnd(不触发 android 4.0以上)) 滑动的使用相关推荐
- 移动端的touchstart,touchmove,touchend事件中的获取当前touch位置
前提:touchstart,touchmove,touchend这三个事件可以通过原生和jq绑定. 原生:document.querySelector("#aa").addEven ...
- JavaScript touch 事件 touchstart touchmove touchend
JavaScript touch 事件 touchstart touchmove touchend MDN 官方文档: https://developer.mozilla.org/en-US/docs ...
- 移动端事件touchstart touchmove touchend 动画事件 过渡事件
在移动端新增了touch事件,因为手指的行为叫做"触摸", 鼠标的行为叫做"点击" 但是它仍然支持点击事件,有300ms的延迟,检测是否双击 移动端的三个事件 ...
- 移动web JavaScript,事件(touchstart,touchmove,touchend)
demo(认识点击时间差).html: <!DOCTYPE html> <html lang="en"> <head><meta name ...
- 移动端事件(touchstart+touchmove+touchend)
移动端事件有哪些: 触摸事件 手势事件 传感器事件 (后面两个兼容性不怎么样,因此重点就是触摸事件) 触摸事件: touch 事件 pointer 事件 (PC端可能会使用jQuery做动画,移动端一 ...
- touchstart, touchmove, touchend, mousedown, mousemove, mouseup, 手机端和pc端点击及触摸事件
touchstart事件:当手指触摸屏幕时候触发,即使已经有一个手指放在屏幕上也会触发. touchmove事件:当手指在屏幕上滑动的时候连续地触发.在这个事件发生期间,调用preventDefaul ...
- touchstart ,touchmove, touchend 页面随手指滑动
<pre style="font-family: 'Courier New'; background-color: rgb(255, 255, 255);"><s ...
- Vue 绑定使用 touchstart touchmove touchend
今天要做一个页面div长按后触发事件,简单学习后实现如下: 先看代码: <template><div><div class="test" @touch ...
- 移动端touch事件,实时获取touchmove移动下的最新元素
手指移动实时获取当前的最新元素.不是touchstart的元素.(完整小demo) <!DOCTYPE html> <html lang="en"> < ...
最新文章
- 计科1高雨妍作业(1)
- python编程培训-课程:尹会生的Python编程培训课程
- record not found or changed by another user 解决方法
- ap计算机科学4分还要再考吗,CB官方发布2020年AP计算机科学考试(CSA)的细节:考试时间/考试题型/备考资料/评分标准/考前建议...
- 做移动互联网App,你的测试用例足够吗?
- 马斯克发布脑机接口重大突破:蓝牙连接,一小时植入,已获FDA认证,人体实验在即...
- 2017年SEO行业的前景以及未来趋势
- case when 子查询_标准SQL——子查询、分组查询、多表联查
- 比较完善的手写数组reduce方法
- python最短路径例子_[python]dijkstra 算法的 加权的最短路径 案例
- C/C++心得-从内存开始
- 三张图较为好理解JavaScript的原型对象与原型链
- 浅谈对于业务中台的理解
- iozone文件系统测试工具
- 拍拍贷2019Q1财报:核心用户转化率上升 迎战资本竞争力略显不足
- 水晶报表html,水晶报表教程:手把手教你制作基本报表
- (zotero+坚果云+pdf expert+欧陆词典)实现PC平板同步阅读管理科研文献(完美教程)
- elasticsearch 实现查询忽略大小写
- 【无线路由器加密 预防邻居盗网】
- 一起赚美元① | 通过一个小工具月入12万美元的秘诀
热门文章
- r245fa物性_2FA应该是强制性的吗?
- 四元组类,定义了四元组类的各种方法
- Revit连接Access数据库
- 电子信息工程学不学python_电子信息工程小白转行深度学习
- 【软件之道】Origin2017-安装及破解方法
- 2021年R1快开门式压力容器操作最新解析及R1快开门式压力容器操作模拟考试题
- C语言 | 求字符串的长度
- 深富策略:关注风格的切换 等待压力的突破
- Xilinx下载电缆找不到,WARNING:iMPACT:923 - Can not find cable, check cable setup
- 关于普通人如何提升执行力?