【问题标题】:Chrome (Desktop) touch emulation not workingChrome(桌面)触摸仿真不起作用
【发布时间】:2016-02-07 16:55:48
【问题描述】:

我写了一点 javascript 并尝试在 Windows 10 的最新稳定 Chrome 上调试它(截至编写 v48)..

该脚本可以完美地与鼠标输入配合使用,但是一旦我模拟一个启用了触摸模拟的移动/触摸设备 - 它就无法正常工作,并且相应的 console.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);

带有触摸仿真功能的 Firefox 完美运行!物理触摸设备也可以完美运行..

https://jsfiddle.net/j8kLz6wm/1/

那么 Chrome 出了什么问题?

【问题讨论】:

  • 你在Chrome 48中签入hasTouch功能总是假的,为什么要签入呢?你能一直听这两个事件吗?
  • 我知道它总是假的——即使你将 Touch Emulation 设置为真......这就是我要问的:为什么它总是假的?

标签: javascript google-chrome touch google-chrome-devtools emulation


【解决方案1】:

你应该像这样重写你的 hasTouch 函数:

function hasTouch() {
  return 'ontouchstart' in window;
}

【讨论】:

    猜你喜欢
    • 2014-12-05
    • 2014-05-08
    • 1970-01-01
    • 2011-07-31
    • 2012-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多