Den*_*ter 117 javascript mouse
我正在构建一个HTML5游戏,我试图将鼠标光标放在特定事件的某个控件上,以便在特定方向上移动始终具有相同的结果.这可能吗?
Mar*_*sen 171
你不能用javascript移动mousepointer.
如果可以的话,只要想想一秒的含义;)
Ale*_*ray 81
通过简单的http调用,AJAX等运行它作为CGI脚本 - 使用您想要移动鼠标的坐标,例如:
http://localhost:9876/cgi/mousemover?x=200&y=450
PS:对于任何问题,有数以百计的借口,为什么,以及如何 - 它不能,也不应该 - 做.但在这个无限的宇宙中,这只是一个决定的问题 - 关于你是否会让它成真.
Xax*_*xis 72
我想如果你没有使用真实(系统)鼠标光标,你可以完成将鼠标光标放到屏幕的给定区域.
例如,你可以创建一个代替光标的图像,处理一个事件,当检测到mouseenter进入你的场景时,将系统光标上的样式设置为'none'(sceneElement.style.cursor = 'none'),然后调出隐藏的图像元素作为光标,基于预定义的轴/边界框平移,可以在场景中随意使用.
这样,无论您如何移动真实光标,您的翻译方法都会将图像光标保留在您需要的任何位置.
dio*_*ziz 65
好问题.这实际上是Javascript浏览器API中缺少的东西.我也和我的团队一起开展WebGL游戏,我们需要这个功能.我在Firefox的bugzilla上打开了一个问题,以便我们可以开始讨论使用API来允许鼠标锁定的可能性.这对所有HTML5/WebGL游戏开发者都很有用.
如果您愿意,请过来在您的反馈中发表评论,并提出问题:
https://bugzilla.mozilla.org/show_bug.cgi?id=630979
谢谢!
小智 42
您可以检测鼠标指针的位置,然后移动网页(相对于身体位置),以便将它们悬停在您希望它们单击的位置上.
例如,您可以将此代码粘贴到浏览器控制台中的当前页面上(之后刷新)
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'
});
});
Run Code Online (Sandbox Code Playgroud)
Dmi*_*kov 12
你不能移动鼠标但可以锁定它.注意:您必须在click事件中调用requestPointerLock.
小例子:
var canvas = document.getElementById('mycanvas');
canvas.requestPointerLock = canvas.requestPointerLock || canvas.mozRequestPointerLock || canvas.webkitRequestPointerLock;
canvas.requestPointerLock();
Run Code Online (Sandbox Code Playgroud)
文档和完整的代码示例:
https://developer.mozilla.org/en-US/docs/Web/API/Pointer_Lock_API
San*_*rma 10
有趣的。由于前面提到的原因(垃圾邮件点击和恶意软件注入),这是不可能直接实现的,但考虑一下这个黑客,它给人留下了同样的印象:
假设你有一个 div,你可以使用这个 css 属性来隐藏真正的光标:
.your_div {
cursor: none
}
Run Code Online (Sandbox Code Playgroud)
只需创建一个图像,一个看起来相似的光标,
并将其放置在您的网页中,并带有position:absolute.
这很容易。检查互联网如何获取真实的鼠标位置(X 和 Y 坐标)。
当实际光标移动时,将伪光标移动相同的 X 和 Y 差异。同样,您始终可以使用 JavaScript 魔法在网页上的任何位置生成点击事件(只需在互联网上搜索操作方法即可)。
现在,您可以按照您想要的方式控制伪光标,并且您的用户将得到真实光标正在移动的印象。
公平警告:不要这样做。没有人希望他们的光标或计算机以这种方式控制,除非您有一些特定的用例,或者您决心逃离您的用户。
所以,我知道这是一个古老的话题,但我首先要说这是不可能的.目前最接近的是将鼠标锁定到一个位置,并跟踪其x和y的变化.这个概念已被采用 - 看起来像 - Chrome和Firefox.它由所谓的鼠标锁管理,并且击中逃脱将打破它.从我的简短阅读中,我认为它的想法是将鼠标锁定到一个位置,并报告类似于点击和拖动事件的运动事件.
这是发布文档:
FireFox:https://developer.mozilla.org/en-US/docs/Web/API/Pointer_Lock_API
Chrome:http://www.chromium.org/developers/design-documents/mouse-lock
这是一个非常简洁的演示:http://media.tojicode.com/q3bsp/