Window: deviceorientation 事件
当设备的方向传感器获取到设备相对于地球坐标系的新方向数据时,deviceorientation 事件会被触发。这些数据是从设备内部的磁力计收集的。
详情请参阅方向和运动数据解说。
此事件不可取消,也不会冒泡。
语法
在诸如 addEventListener() 之类的方法中使用事件名称,或设置事件处理程序属性。
js
addEventListener("deviceorientation", (event) => { })
ondeviceorientation = (event) => { }
事件类型
一个 DeviceOrientationEvent。继承自 Event。
事件属性
DeviceOrientationEvent.absolute只读-
一个布尔值,表示设备提供的方向数据是否是绝对的。
DeviceOrientationEvent.alpha只读-
一个表示设备围绕 Z 轴运动的数值,以度为单位,范围从 0(含)到 360(不含)。
DeviceOrientationEvent.beta只读-
一个表示设备围绕 X 轴运动的数值,以度为单位,范围从 -180(含)到 180(不含)。这表示设备的前后运动。
DeviceOrientationEvent.gamma只读-
一个表示设备围绕 Y 轴运动的数值,以度为单位,范围从 -90(含)到 90(不含)。这表示设备的左右运动。
DeviceOrientationEvent.webkitCompassHeading非标准 只读-
一个数值,表示设备围绕世界坐标系 z 轴的运动与正北方向之间的差异,以度为单位,范围从 0 到 360。
DeviceOrientationEvent.webkitCompassAccuracy非标准 只读-
指南针的精度,以正或负偏差表示。通常为 10。
示例
js
if (window.DeviceOrientationEvent) {
window.addEventListener(
"deviceorientation",
(event) => {
const rotateDegrees = event.alpha; // alpha: rotation around z-axis
const leftToRight = event.gamma; // gamma: left to right
const frontToBack = event.beta; // beta: front back motion
handleOrientationEvent(frontToBack, leftToRight, rotateDegrees);
},
true,
);
}
function handleOrientationEvent(frontToBack, leftToRight, rotateDegrees) {
// do something amazing
}
规范
| 规范 |
|---|
| 设备方向和运动 # deviceorientation |
| 设备方向和运动 # dom-window-ondeviceorientation |
浏览器兼容性
加载中…