Window: devicemotion 事件

基线 2023

新可用

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

安全上下文:此功能仅在安全上下文(HTTPS)中可用,在某些或所有支持的浏览器中可用。

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

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

语法

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

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

ondevicemotion = (event) => {};

事件类型

事件属性

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, true);

规范

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

浏览器兼容性

BCD 表格仅在浏览器中加载

另请参阅