我写了一个小javascript,并尝试在Windows 10的最新稳定Chrome上调试它(截至编写v48)。
该脚本与鼠标输入完美配合,但是一旦我模拟了带有触摸模拟的移动/触摸设备 - 它不起作用,相应的控制台.logs告诉我没有检测到触摸...
function hasTouch() {
return 'ontouchstart' in document.documentElement;
}
var event_start = hasTouch() ? 'touchstart' : 'mousedown',
event_move = hasTouch() ? 'touchmove' : 'mousemove',
event_end = hasTouch() ? 'touchend' : 'mouseup';
console.log(event_start + "|" + event_move + "|" + event_end);
带有触摸模拟的火狐完美工作!此外,物理触摸设备可以完美地工作。
https://jsfiddle.net/j8kLz6wm/1/
那么Chrome有什么问题呢?
你应该像这样重写你的hasTouch
函数:
function hasTouch() {
return 'ontouchstart' in window;
}