[前端]手机浏览器手势滑动问题(内附有测试地址,手机端打开)

2016-04-09 19:55:11 +08:00
 lipenglong

用的手写的原生 JS , touch 事件写的。想通过判断手势来做一些滑动,但是会有一些问题。比如手势是下滑的,但是代码结果是左右滑动(因为触摸中,上下滑动长度 < 左右滑动长度)。

做的功能是:左右滑动的时候侧边栏出来; 非左右滑动的时候,正常手机浏览器滚动 问题:手势向上滑动, 并且滑动比较快的时候,侧边栏会滑出来(正常逻辑是不会滑出来的) 想过的解决办法:监测手机浏览器是否是滚动状态, 但是没找到这个方法。

链接地址:http://penglongli.github.io/Test/
需要手机端预览

2498 次点击
所在节点    问与答
3 条回复
xiaocsl
2016-04-09 22:59:19 +08:00
问题没你想的那么难.只是单纯的代码逻辑有问题.

var distanceX = endX - startX;
if(distanceX < 0)

这两行可以看出,你就做了非常简单的判断,一点 X 坐标有变动就执行.
这样,你不管怎么滑动,只要开始时的 X 坐标和结束时的 X 坐标有变化就触发了.

解决办法也不麻烦.完善一下,判断逻辑.
有两组 x,y 坐标就可以判断出角度.然后根据角度来判断执行什么代码即可.
xiaocsl
2016-04-09 23:02:01 +08:00
另外..移动端就扔掉 jQuery 吧.
换成 Zepto.js 吧
Lpl
2016-04-10 03:10:49 +08:00
@xiaocsl 判断角度的话是大于某个限定读书的时候才判定为左右移动么ヽ(´・д・`)ノ

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/269815

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX