【发布时间】:2012-04-11 10:29:10
【问题描述】:
我目前正在按照响应式设计 + 移动优先的方法重新设计网站。
我正在尝试在支持触摸的设备上使用 JS 检测滑动事件。为此,我使用以下代码:
document.addEventListener ('touchstart', function(event) {
//Get initial finger coords
}, false);
document.addEventListener ('touchmove', function(event) {
//Update final finger coords
}, false);
document.addEventListener ('touchend', function(event) {
//Compare initial and final coords, trigger swipe events if necessary
}, false);
我已经在 iPad 1、iPhone 4 和几台运行 Android 2.2.1 的设备上测试了这段代码,当我在屏幕上拖动手指时的结果是我所期待的:touchmove 事件触发了几次(做一个长手势时,它很容易上升到一百个)。
当我在 Android 2.3.3 设备(我使用的是三星 Galaxy S2)上测试它时,问题就出现了。使用其原生浏览器,touchmove 事件的数量减少到只有 1 个(或很少有 2 个)。
我做错了什么还是应该表现得像那样?有没有人发现同样的问题?在此版本的 Andriod 中,我无法找到有关 touchmove 事件行为的文档。
您可以在这里进行测试(使用支持触控的设备):http://jsfiddle.net/xs5BG/embedded/result/
【问题讨论】:
标签: javascript android events mobile swipe