最近在移动端使用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以上)) 滑动的使用相关推荐

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

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

  2. JavaScript touch 事件 touchstart touchmove touchend

    JavaScript touch 事件 touchstart touchmove touchend MDN 官方文档: https://developer.mozilla.org/en-US/docs ...

  3. 移动端事件touchstart touchmove touchend 动画事件 过渡事件

    在移动端新增了touch事件,因为手指的行为叫做"触摸", 鼠标的行为叫做"点击" 但是它仍然支持点击事件,有300ms的延迟,检测是否双击 移动端的三个事件 ...

  4. 移动web JavaScript,事件(touchstart,touchmove,touchend)

    demo(认识点击时间差).html: <!DOCTYPE html> <html lang="en"> <head><meta name ...

  5. 移动端事件(touchstart+touchmove+touchend)

    移动端事件有哪些: 触摸事件 手势事件 传感器事件 (后面两个兼容性不怎么样,因此重点就是触摸事件) 触摸事件: touch 事件 pointer 事件 (PC端可能会使用jQuery做动画,移动端一 ...

  6. touchstart, touchmove, touchend, mousedown, mousemove, mouseup, 手机端和pc端点击及触摸事件

    touchstart事件:当手指触摸屏幕时候触发,即使已经有一个手指放在屏幕上也会触发. touchmove事件:当手指在屏幕上滑动的时候连续地触发.在这个事件发生期间,调用preventDefaul ...

  7. touchstart ,touchmove, touchend 页面随手指滑动

    <pre style="font-family: 'Courier New'; background-color: rgb(255, 255, 255);"><s ...

  8. Vue 绑定使用 touchstart touchmove touchend

    今天要做一个页面div长按后触发事件,简单学习后实现如下: 先看代码: <template><div><div class="test" @touch ...

  9. 移动端touch事件,实时获取touchmove移动下的最新元素

    手指移动实时获取当前的最新元素.不是touchstart的元素.(完整小demo) <!DOCTYPE html> <html lang="en"> < ...

最新文章

  1. 计科1高雨妍作业(1)
  2. python编程培训-课程:尹会生的Python编程培训课程
  3. record not found or changed by another user 解决方法
  4. ap计算机科学4分还要再考吗,CB官方发布2020年AP计算机科学考试(CSA)的细节:考试时间/考试题型/备考资料/评分标准/考前建议...
  5. 做移动互联网App,你的测试用例足够吗?
  6. 马斯克发布脑机接口重大突破:蓝牙连接,一小时植入,已获FDA认证,人体实验在即...
  7. 2017年SEO行业的前景以及未来趋势
  8. case when 子查询_标准SQL——子查询、分组查询、多表联查
  9. 比较完善的手写数组reduce方法
  10. python最短路径例子_[python]dijkstra 算法的 加权的最短路径 案例
  11. C/C++心得-从内存开始
  12. 三张图较为好理解JavaScript的原型对象与原型链
  13. 浅谈对于业务中台的理解
  14. iozone文件系统测试工具
  15. 拍拍贷2019Q1财报:核心用户转化率上升 迎战资本竞争力略显不足
  16. 水晶报表html,水晶报表教程:手把手教你制作基本报表
  17. (zotero+坚果云+pdf expert+欧陆词典)实现PC平板同步阅读管理科研文献(完美教程)
  18. elasticsearch 实现查询忽略大小写
  19. 【无线路由器加密 预防邻居盗网】
  20. 一起赚美元① | 通过一个小工具月入12万美元的秘诀

热门文章

  1. r245fa物性_2FA应该是强制性的吗?
  2. 四元组类,定义了四元组类的各种方法
  3. Revit连接Access数据库
  4. 电子信息工程学不学python_电子信息工程小白转行深度学习
  5. 【软件之道】Origin2017-安装及破解方法
  6. 2021年R1快开门式压力容器操作最新解析及R1快开门式压力容器操作模拟考试题
  7. C语言 | 求字符串的长度
  8. 深富策略:关注风格的切换 等待压力的突破
  9. Xilinx下载电缆找不到,WARNING:iMPACT:923 - Can not find cable, check cable setup
  10. 关于普通人如何提升执行力?