设备事件:
触发该类事件,需要硬件支持
重力感应事件
devicemotion
屏幕旋转事件
磁力感应事件
deviceorientation
都是给window 对象绑定的
实现摇一摇功能
实现原理:当两次加速记录的加速度值,差值较大时,可以认为用户正在晃动手机
//手机晃动前 加速器的值
var current = [x: 0,y: 0,z: 0];
//手机晃动后 加速器的值
var after = [x: 0,y: 0,z: 0];
//定义加速器最小差值
var min = 10;
window.ondevicemotion = function(){
//获取加速器 重力加速度对象(博爱和设备的坐标信息)
var acce = event.accelerationIncludingGravity;
//记录此时加速度的值
current.x=acce.x;
current.y=acce.y;
current.z=acce.z;
//比较两次的差值来判断是否晃动
if(Math.abs(after.x-current.x)>min||Math.abs(after.y-current.y)>min||Math.abs(after.z-current.z)>min){
//此时表示在摇晃设备 实现摇一摇
}
//记录晃动后值
after.x = current.x;
after.y = current.y;
after.z = current.z;
}