如果使用HTML5开发游戏或者VR博物馆之类的应用,常常需要获取鼠标的控制权,也就是说简单地通过鼠标的移动来控制视角的旋转。
直接使用监听mousemove
事件是不可行的,因为当鼠标移动到浏览器或元素的边缘的时候,鼠标不能再移动,mousemove
中鼠标的位置也不会再移动。
这个可以通过Pointer Lock API / 指针锁定API来完成,它的使用很简单,只需要在某个事件监听器中(必须在某个事件监听器中调用,否则无效)调用canvas.requestPointerLock()
即可,比如下面的代码就是在canvas
被点击后获取鼠标的控制权。
canvas.addEventListener("click", ev => {
canvas.requestPointerLock