文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
touch事件
移动开发过程之中,涉及到touch事件的情况特别多,比如按下,按起,滑动。这些事件在不同的设备之中存在差异。
组件
之前的滑动处理我都是自己去写的,没有使用第三方的组件。看了一篇文章介绍,提到了三个组件:
- hammer.js
- zepto
- appframework
这三个都对touch进行了处理,第一个是专门的触屏手势处理框架,功能很强大。其他两个,据说zepto的会好一点,虽然appframework自己说是对zepto的touch进行了修改和提升。
事件顺序
没有touch的时候: mousedown -> mouseup -> click。
有touch的时候:touchstart -> touchmove -> touchend。
都有的时候:
- 点击操作: touchstart -> touchend -> mousedown -> mouseup -> click
- 移动的时候: touchstart -> touchmove -> touchend
坑
安卓设备下swipe
很难触发
这是安卓的一个老问题了.谷歌一下 类似zepto android swipe的关键字,就能发现不少.很多项目中的issue都能找到这个问题,连安卓自身项目里都有相关issue(链接要翻墙)。
解决方法就是在touchstart或touchmove事件中,主动调用e.preventDefault()。
滑动方向的问题
以上下滑动为主的操作,有可能触发swipeLeft/Right事件,而不是swipeUp/Down事件.这个主要是因为native scroll的一些特性,导致算距离时竖向的距离可能会很小,而上下滑的最后,一般会有一个横向滑动的连带动作,导致deltaX>deltaY,从而判断出错.
最后说一下,还是慎用左右滑动的设计,一是兼容性问题.二是,微信等app是手机网页主要的入口,而从左向右的滑动,很容易关闭页面.
参考资料
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论