我目前正在按照响应式设计+移动优先的方法重新设计网站。
我正在尝试在支持触摸的设备上使用 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 个)。
我做错了什么还是应该表现得像那样?有没有人发现同样的问题?touchmove
我无法在此版本的 Andriod 中找到有关事件行为的文档。
您可以在这里测试它(使用支持触摸的设备):http: //jsfiddle.net/xs5BG/embedded/result/