Window: devicemotion 事件

Baseline 2023
新推出

自 2023 年 9 月起,此功能可在最新的设备和浏览器版本上使用。此功能可能无法在较旧的设备或浏览器上使用。

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

devicemotion 事件会以固定的时间间隔触发,并指示设备在当时受到的加速度(包括或不包括重力影响)。如果可用,它还会提供有关旋转速率的信息。

此事件不可取消,也不会冒泡。

语法

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

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

ondevicemotion = (event) => { }

事件类型

一个 DeviceMotionEvent。继承自 Event

Event DeviceMotionEvent

事件属性

DeviceMotionEvent.acceleration 只读

一个对象,给出设备在三个轴(x、y 和 z)上的加速度。加速度以 m/s² 为单位表示。

DeviceMotionEvent.accelerationIncludingGravity 只读

一个对象,给出设备在三个轴(x、y 和 z)上的加速度,包括重力影响。加速度以 m/s² 为单位表示。

DeviceMotionEvent.rotationRate 只读

一个对象,给出设备在三个方向轴(alpha、beta 和 gamma)上的方向变化速率。旋转速率以度/秒为单位表示。

DeviceMotionEvent.interval 只读

一个数字,表示从设备获取数据的间隔时间(以毫秒为单位)。

示例

js
function handleMotionEvent(event) {
  const x = event.accelerationIncludingGravity.x;
  const y = event.accelerationIncludingGravity.y;
  const z = event.accelerationIncludingGravity.z;

  // Do something awesome.
}

window.addEventListener("devicemotion", handleMotionEvent);

规范

规范
设备方向和运动
# devicemotion
设备方向和运动
# dom-window-ondevicemotion

浏览器兼容性

另见