移动鼠标指针到一个特定的位置?

我正在构build一个HTML5游戏,我正试图将鼠标光标放在特定事件的特定控件上,以便在特定方向上移动的结果始终相同。 这可能吗?

伟大的问题。 这实际上是从JavaScript浏览器API中缺less的东西。 我也和我的团队一起开发WebGL游戏,我们需要这个function。 我在Firefox的bugzilla上打开了一个问题,以便我们可以开始讨论使用API​​来允许鼠标locking的可能性。 这对所有的HTML5 / WebGL游戏开发者来说都是有用的。

如果你愿意,过来,留下你的反馈评论,并upvote这个问题:

https://bugzilla.mozilla.org/show_bug.cgi?id=630979

谢谢!

你不能用javascript移动鼠标指针。

如果可以的话,请考虑一秒钟的影响;)

  1. 用户认为:“嘿,我想点击这个链接”
  2. Javascript将鼠标移动到另一个链接
  3. 用户点击错误的链接,并无意中下载恶意软件格式化他的C ​​ – 驱动器,并吃他的糖果
  1. 在客户机上运行一个小型的Web服务器。 可以是一个小的100kb的东西。 一个Python / Perl脚本等
  2. 包含一个可以移动鼠标的小型预编译的C 可执行文件。
  3. 通过一个简单的http调用,AJAX,不pipe – 用你想要移动鼠标的坐标来运行它作为一个CGI脚本,例如:

    http://localhost:9876/cgi/mousemover?x=200&y=450

PS:对于任何问题,有几百个理由为什么,以及如何 – 不能,也不应该 – 完成。但在这个无限的宇宙中,这只是一个决心的问题 – 至于你将会发生。

我可以想象如果你没有使用真实(系统)鼠标光标,你可以完成将鼠标光标放置在屏幕上的一个给定区域。

例如,你可以创build一个图像来代替你的光标,处理一个事件,当检测到鼠标进入你的场景时,将系统光标的样式设置为'none'( sceneElement.style.cursor = 'none' ),然后会根据预定义的轴/边界框转换将隐藏的图像元素作为光标放置在场景中的任何位置。

这样,无论您如何移动真正的光标,您的翻译方法都会将图像光标保留在任何需要的地方。

编辑: 在jsFiddle中使用图像表示和强制鼠标移动的例子

您可以检测到鼠标指针的位置,然后移动网页(相对于身体位置),以便将鼠标hover在您希望它们点击的位置上。

例如,您可以将此代码粘贴到浏览器控制台的当前页面中(然后再刷新)

 var upvote_position = $('#answer-12878316').position(); $('body').mousemove(function (event) { $(this).css({ position: 'relative', left: (event.pageX - upvote_position.left - 22) + 'px', top: (event.pageY - upvote_position.top - 35) + 'px' }); }); 

所以,我知道这是一个老话题,但我会先说这是不可能的。 目前最接近的是将鼠标locking到一个位置,并跟踪x和y的变化。 这个概念已被采用 – 它看起来像 – 铬和火狐。 它是由所谓的鼠标锁pipe理 ,击中逃脱将打破它。 从我简短的阅读中,我认为这个想法是将鼠标locking到一个位置,并报告类似于点击和拖动事件的运动事件。

这是发布文档:
FireFox: https : //developer.mozilla.org/en-US/docs/Web/API/Pointer_Lock_API
Chrome: http : //www.chromium.org/developers/design-documents/mouselock

这里是一个非常简洁的演示: http : //media.tojicode.com/q3bsp/

您不能移动鼠标,但可以locking它。 注意:你必须在click事件中调用requestPointerLock。

小例子:

 var canvas = document.getElementById('mycanvas'); canvas.requestPointerLock = canvas.requestPointerLock || canvas.mozRequestPointerLock || canvas.webkitRequestPointerLock; canvas.requestPointerLock(); 

文档和完整的代码示例:

https://developer.mozilla.org/en-US/docs/Web/API/Pointer_Lock_API

您不能使用javascript移动鼠标指针,因此出于安全原因。 实现这种效果的最好方法是将控件实际放在鼠标指针下。

难道这不是简单地通过获得鼠标指针的实际位置,然后计算和补偿基于这种补偿的精灵/场景鼠标动作?

例如,您需要将鼠标指针置于底部中央,但它位于左上方; 隐藏光标,使用移动的光标图像。 移动光标移动和映射鼠标input以匹配重新定位的光标精灵(或“控制”)点击当/如果边界被击中,重新计算。 如果/当光标实际上达到了你想要的点时,移除补偿。

免责声明,不是游戏开发者。