Summary
- 2012 年的 Pointer Lock 草案让网页游戏读取不受屏幕边缘限制的相对鼠标移动;事件集中送到一个元素,系统光标随之隐藏。
- 2016 年 W3C 推荐标准要求浏览器始终提供默认退出手势。键盘设备推荐 Esc;玩家用该手势退出后,页面要等新的主动交互才能再次锁住鼠标。
在第一人称游戏里,把鼠标向右推,视角就该一直向右转。普通光标碰到显示器右边缘时,玩家的手还在动,角色却像撞到空气墙。三维建模也有同样的滑稽时刻:模型转到一半,拖动先到头。W3C 2012 年 5 月的首份公开草案 给出一种大胆处理:光标从屏幕上消失,一个指定元素接收鼠标事件,页面拿到的是每次移动的差值。屏幕有边,转身没边。
它和按住鼠标键的拖拽不同。传统鼠标捕获在松开按键后就结束;Pointer Lock 可以持续,不按键也照样报告移动。movementX、movementY 表示位移,固定的屏幕坐标不再假装指针真的跑到了显示器外。玩家得到一颗能连续转动的脑袋,而不是一个在壁纸边上原地踏步的箭头。
代价很快出现。光标隐藏,事件又被一个元素接走,平时用鼠标点浏览器按钮、切窗口的路也没了。2012 年草案的安全章节直接指出危险:恶意页面可能在人退出后反复把鼠标抢回去。浏览器必须留一条不受网页控制的逃生通道。游戏借走鼠标,人得有权要回来。
2016 年 10 月的 W3C 推荐标准 把这笔借贷写得更清楚。默认解锁手势必须随时可用;有键盘时推荐 Esc。锁定目标消失,或标签页、窗口失去焦点,锁定也要结束。pointerlockchange 报告状态变化,pointerlockerror 告知请求失败。游戏据此可以让菜单和普通光标重新出现。标准还照顾到屏幕放大软件:鼠标锁住时,放大位置需要键盘可达。
最妙的规则发生在第二次锁定。第一次请求,以及玩家用浏览器默认手势退出之后,页面要收到新的主动交互才能再用 requestPointerLock()。游戏自己调用 exitPointerLock() 切回菜单,则可在合适时重新进入,无须把每一次内部模式切换都当作玩家逃跑。两种退出有两种意义:玩家的退出是拒绝,游戏的退出是换挡。要是混为一谈,Esc 就成了旋转门。
2026 年 2 月的 Pointer Lock 2.0 草案 继续处理细节。unadjustedMovement 在平台支持时请求不经系统鼠标加速的原始移动;请求接口返回 Promise。对精确瞄准来说,同样的手部移动若因系统加速而变成不同的镜头角度,手感便会乱套。草案也细化了短暂用户激活与全屏请求的先后次序。W3C 的 2.0 发布记录 从 2016 年走到 2026 年:一个消失的小箭头,值得十年的规矩。
玩家终于能在虚拟房间里顺畅转身,也能随时回到真实桌面。Pointer Lock 真正做成了两件事:移动越过屏幕边缘,人的决定不越界。
会员简报
档案背景详情
使用相应会员等级登录,即可解锁完整简报与来源注释。
仅限 Strategic Circle
Strategic Circle
所有读者均可浏览。加入并登录后可解锁档案简报。
加入 Strategic Circle仅限 Leadership Alliance
Leadership Alliance
符合条件的 IP 资产所有者和管理层可登录查看 Leadership Alliance 简报。
加入 Leadership Alliance





