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

由于我希望能够跟踪所有运动而不必担心指针会离开窗口,因此我首先研究了此问题,并将MDN Pointer Lock API demo用作起点。

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

但是对于我的特定应用程序,我希望手指在触摸板上的绝对 x和y。是否可以构建上面链接的演示的变体,其中红点对应于手指的绝对位置?例如,如果您举起手指然后将其放在左上角,那么红点将始终跳到 Canvas 的左上角吗?

我知道javascript Touch Events API,它在平板电脑上使用时会给出绝对坐标,但是当在Firefox(v36)或Chrome(v41)下的MacBook上运行时,demo不会注册任何触控板输入。

我还读到可以在Chrome中启用触摸仿真,尽管我找不到在我的版本下可以执行此操作的复选框(也许只有特殊的开发人员才拥有此功能),并且从阅读中可以看出,这似乎更像是鼠标触摸翻译,因此我怀疑该仿真是否对触控板具有特定的支持。

是否可以通过HTML / Javascript在MacBook触控板上获取触摸事件的绝对x,y坐标?

最佳答案

我真的不相信您将能够使触控板按您希望的方式工作。请记住,触控板应该像鼠标一样,就像一个扁平的轨迹球。可以想象一下,好像每次滑动手指都会将光标推到周围,然后在每次按下触控板时都将光标居中。

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

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

  • 打开开发工具F12
  • 单击左上角的电话图标,或按Esc
  • 打开更好的控制台
  • 单击仿真选项卡
  • 转到Sensors面板
  • 检查Emulate touch screen

  • javascript - HTML5/Javascript-是否可以在浏览器的Macbook触控板上获取触摸事件的绝对坐标?-LMLPHP

    09-25 22:23