2015-04-01 68 views
8

我想写一些在触控板上记录手势的浏览器。HTML5/Javascript - 是否可以在浏览器中的Macbook触控板上获取触摸事件的绝对坐标?

因为我希望能够跟踪所有的运动而不必担心指针离开窗口,所以我首先研究了这个问题,并以MDN Pointer Lock API demo为起点。

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

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

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

我也读过,可以在Chrome中启用触摸模拟,但我无法找到在我的版本下执行该操作的复选框(也许只有特殊的开发人员版本才有这种功能),并且从阅读中可以看出它似乎是更多的鼠标触摸翻译,所以我怀疑这种模拟会对触控板有特定的支持。

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

+0

可能是这个答案帮助的http://stackoverflow.com/questions/7790725/javascript-track-mouse-position – GibboK 2016-09-06 09:41:05

回答

0

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

除非您能够将触控板1:1映射到屏幕,就像使用Wacom平板电脑那样,触控板与屏幕无关;它只知道鼠标。

Chrome(版本版本46.0.2490。71米),您可以通过启用它在仿真模式模拟触摸事件:

  1. 开放开发工具F12
  2. 您可以点击电话图标的左上角或按打开更好的控制台Esc键
  3. 点击仿真标签
  4. 转到Sensors面板
  5. 检查Emulate touch screen

Enable Emulation in Chrome

+0

虽然它可能对浏览器是真的,也有越来越手段本地应用程序中的精确触摸坐标为什么浏览器应用程序应该不同我认为这是浏览器厂商(至少苹果)应该实施的下一个事情。要么,要么删除原生应用程序的现有功能。 – metalim 2015-12-01 07:33:47

相关问题