VirtualKeyboard:geometrychange 事件

可用性有限

此特性不是基线特性,因为它在一些最广泛使用的浏览器中不起作用。

实验性: 这是一项实验性技术
在生产中使用此技术之前,请仔细检查浏览器兼容性表格

安全上下文: 此功能仅在安全上下文(HTTPS)中可用,且支持此功能的浏览器数量有限。

当屏幕上的虚拟键盘在显示和隐藏状态之间切换时,会触发 VirtualKeyboard 接口的 geometrychange 事件。

geometrychange 事件可用于检测虚拟键盘的出现和消失,以便您可以适当地调整布局。当使用 Virtual Keyboard API 来禁用浏览器在虚拟键盘显示和隐藏时自动调整视口大小时,这是必需的。

语法

在诸如 addEventListener() 之类的方法中使用事件名称,或设置事件处理程序属性。

js
addEventListener("geometrychange", (event) => { })

ongeometrychange = (event) => { }

事件类型

一个通用的 Event

示例

以下代码片段使用 geometrychange 事件来检测虚拟键盘的几何形状何时发生变化,然后访问 boundingRect 属性来查询虚拟键盘的大小和位置。

js
if ("virtualKeyboard" in navigator) {
  navigator.virtualKeyboard.overlaysContent = true;

  navigator.virtualKeyboard.addEventListener("geometrychange", (event) => {
    const { x, y, width, height } = event.target.boundingRect;
  });
}

规范

规范
VirtualKeyboard API
# dom-virtualkeyboard-ongeometrychange

浏览器兼容性

另见