HTML5/Javascript - 是否可以在浏览器中的Macbook Trackpad上获取触摸事件的绝对坐标?

ugl*_*ote 12 javascript html5 trackpad touch

我想在浏览器中写一些东西,在触控板上记录手势.

由于我希望能够跟踪所有运动而不必担心指针离开窗口,我首先研究了这个问题并使用MDN Pointer Lock API演示作为起点.

但是我注意到在MacBook上使用这个演示时,如果我抬起手指并在触控板上的其他位置开始新的拖动,它会忽略我的手指在空中移动的距离,它只计算在我的手指触摸触控板时完成的动作.这与通常使用触控板在操作系统中移动鼠标指针的方式一致.

但是对于我的具体应用,我希望我的手指的绝对 x和y在触控板上.是否可以构建上面链接的演示变体,其中红点对应于手指的绝对位置?例如,如果你抬起手指然后将其放在左上角,红点总会跳到画布的左上角?

我知道javascript Touch Events API,它在平板电脑上使用时提供绝对坐标,但在Firefox(v36)或Chrome(v41)下在MacBook上运行时,演示不会注册任何触控板输入.

我还读到可以在Chrome中启用触摸仿真,虽然我找不到我的版本下的复选框(也许只有特殊的开发人员版本才有这个),并且通过阅读它,它似乎更像是一个鼠标触摸翻译所以我怀疑该仿真会对触控板有特定的支持.

有没有办法通过HTML/Javascript获取MacBook触控板上触摸事件的绝对x,y坐标?

zer*_*298 1

我真的不相信您能够让触控板按照您想要的方式工作。请记住,触控板应该充当鼠标,它就像一个扁平的轨迹球。可以想象,每次滑动手指时,手指都会推动光标,然后每次按下触控板时,都会将光标置于手指下方。

除非您能够将触控板 1:1 映射到屏幕(就像 Wacom 数位板那样),否则触控板与屏幕没有关联;它只知道鼠标。

Chrome(版本Version 46.0.2490.71 m)中,可以通过在仿真模式下启用来模拟触摸事件:

  1. 打开开发工具F12
  2. 单击左上角的电话图标或按打开更好的控制台Esc
  3. 单击仿真选项卡
  4. 转到Sensors面板
  5. 查看Emulate touch screen

在 Chrome 中启用模拟