在 Chrome 的未来版本中,有望使用 pointerLock 来获取鼠标的原始或未经调整的移动,即鼠标在通过操作系统传递函数之前的移动 [1]。
请求未调整移动的 pointerLock 的工作原理如下:
const promise = myCanvas.requestPointerLock({unadjustedMovement: true});
if (!promise) {
console.log("disabling mouse acceleration is not supported");
}
似乎这目前仅适用于 Chrome(例如版本 88-91),并且仅在用户手动启用 chrome://flags/#enable-pointer-lock-options 时才有效。
我想检查浏览器是否支持 unadjustedMovement 而此时实际上没有请求 pointerLock 。因此,我的问题是是否有一种方法可以检查是否支持 unadjustedMovement 而无需请求指针锁。
更新: 以防万一,自然可以使用以下代码段对其进行检查。
function checkUnadjustedMovement() {
const promise = document.body.requestPointerLock({unadjustedMovement: true});
document.exitPointerLock()
if (!promise) {
return false;
}
return true;
}
但是,我不确定这是否会产生负面影响,更重要的是,它需要激活手势。即导致调用函数的单击。