Javascript 指针锁API项在窗口被压扁时给出了一个大数字,为什么?

Javascript 指针锁API项在窗口被压扁时给出了一个大数字,为什么?,javascript,html,three.js,Javascript,Html,Three.js,我放了两个截图来显示发生了什么: 全屏模式很好用——只要我点击画布元素并用鼠标锁定,它就会静止不动,直到我真的进行了一些移动 另一个屏幕截图显示了问题。当我将浏览器的大小调整到不同的大小时,它会导致movementX处于非零值,它会保持在接近零的位置,窗口的挤压程度越小。(如果缩放不同,则不是-965,但如果将其停靠在屏幕一侧,则始终是-965) 第一个图像(工作正常): 第二个图像(工作不正常): 看看我是如何由于入口上的-965 movementX值而转向一侧的。为什么会发生这种情况,

我放了两个截图来显示发生了什么:

全屏模式很好用——只要我点击画布元素并用鼠标锁定,它就会静止不动,直到我真的进行了一些移动

另一个屏幕截图显示了问题。当我将浏览器的大小调整到不同的大小时,它会导致movementX处于非零值,它会保持在接近零的位置,窗口的挤压程度越小。(如果缩放不同,则不是-965,但如果将其停靠在屏幕一侧,则始终是-965)


第一个图像(工作正常):

第二个图像(工作不正常):


看看我是如何由于入口上的-965 movementX值而转向一侧的。为什么会发生这种情况,我该如何预防我不想让它在进入时移动,不管相机在哪里。我看了一下代码,我只能在Chrome中重现这个问题(在Firefox中很好,IE11不支持指针锁定)。它似乎与文档上的事件处理程序有关,而不是与画布上的事件处理程序有关,但只是作为特定于Chrome/Webkit的bug

我可以通过忽略较大的初始值来解决此问题:

    console.log("Logging (movementX, movementY): (", movementX, ", ", movementY, ")");
    if ( movementX < -10 || movementY < -10 ) {
        return;
    }
console.log(“日志记录(movementX,movementY):(“,movementX,,”,movementY,”);
如果(移动X<-10 | |移动Y<-10){
返回;
}

您可能需要调整数字,这只是一个快速测试。

您可以将指针锁定代码(作为文本,而不是屏幕截图)包括在内吗?我已将所有使用的文件放入github文件夹中@WestLangley这不是一个webgl问题吗?HTML5 rocks在其指针锁定api教程中提供了一些示例,这些示例与我的问题完全相同。您好,谢谢您的帮助,尽管我仍然想知道为什么会发生这种情况。非常感谢您的修复。:)我将把它放在-300左右,因为bug的范围是-400到-965。