在 Chrome 的未来版本中,有望使用 pointerLock 来获取鼠标的原始或未调整的移动,即鼠标在通过操作系统的传递函数之前的移动 [1]。
请求具有未调整移动的指针锁的工作原理如下:
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;
}
但是,我不确定这是否会产生负面影响,更重要的是,它需要一个激活手势。 IE。导致调用该函数的点击。