捕获浏览器窗口外的鼠标位置
Capturing mouse position outside of browser window?
在浏览器中创建沉浸式体验(使用WebGL等)的一个主要障碍是对鼠标控制的限制。
例如,第一人称射击游戏的控制方案本质上要求程序抓住鼠标并将其重新居中,从而允许光标在任何方向上无限移动。这是一个禁忌,因为它会给网络程序员太多的控制权。希望有一天我们能看到一个插件,允许网站请求移动鼠标的权限,以允许这种行为。
然而,我认为有一些方法可以改善事情,而不必走得太远。我想知道是否有可能允许访问鼠标位置,一旦鼠标移出窗口(焦点仍在窗口上)?
我正在玩这个游戏使用谷歌浏览器:http://www.chromeexperiments.com/detail/x-wing/?f=
,我最大的问题是,要到达一个角落,我必须小心地保持我的鼠标在浏览器窗口的角落。如果我把它从窗口推下去,我的飞船就会停留在鼠标最后一个窗口的位置,而不是在角落里。我就会撞到墙上。
为了使它更好,当鼠标在窗口外时,浏览器应该能够接收鼠标更新。在这种类型的游戏中,如果鼠标离开窗口,它应该继续向浏览器发送更新的位置。
对此有任何规定吗?
回答你的问题,不,你不能从窗口外获得鼠标事件(包括其位置)。
有鼠标锁定API,它是专门为您描述的情况设计的。它将光标锁定在当前窗口。支持现在几乎不存在,但总有一天…!
提示:
function thumb_mouse_down(e) {
e.target.setCapture();
return false;
}
function doc_mouse_up(e) {
e.target.releaseCapture();
}
setCapture()
做到了。下面是一个工作示例:
这似乎是一个比允许开发人员重新定位光标更大的安全问题。答案是否定的,没有这样的东西。而且可能永远都不会有。对不起!
Update:当然,我说的是窗外的捕获,这将是一个问题。很有可能会有一个API来锁定鼠标,也许是在请求用户的许可之后。正如nickf指出的,他们已经在做了-https://www.w3.org/TR/pointerlock/
原始失效链接- http://dvcs.w3.org/hg/webevents/raw-file/default/mouse-lock.html
- 跟踪jqplot垂直折线图的鼠标位置
- Javascript-在视频中跟踪鼠标位置
- 打开相对于鼠标位置的CSS3/HTML5模式对话框
- 如何控制quadraticCurve使用鼠标位置控制位置
- Javascript如何在不使用画布的情况下获取鼠标位置
- jQuery根据鼠标位置计算DIV偏移量和边界
- 在火狐浏览器的画布上获取鼠标位置
- 尝试绘制从鼠标位置工具栏中选择的形状 - HTML5 CANVAS
- 添加视图框时更改鼠标位置
- 如何在鼠标位置获取所有元素
- Three.js 3D缩放到鼠标位置
- 将鼠标位置(0,0)设置为画布的中心
- Unity 2d实例化鼠标位置问题,请告知
- 在原生JavaScript中获取画布中鼠标位置的最现代方法
- 如何在 Javascript 中正确获取鼠标位置
- 如何将元素移动到鼠标位置
- 使用 JavaScript 跟踪 Adobe Air 中的鼠标位置
- 三.js - 对象跟随鼠标位置
- 绘制在鼠标位置折叠的水平线和垂直线
- 在鼠标按下期间获取鼠标位置