我想在浏览器中写一些东西,在触控板上记录手势。
由于我希望能够跟踪所有运动而不必担心指针会离开窗口,因此我首先研究了此问题,并将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)中,可以通过在仿真模式下启用触摸事件来模拟触摸事件:
Sensors
面板Emulate touch screen