博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
对js陀螺仪的认知理解
阅读量:5978 次
发布时间:2019-06-20

本文共 1453 字,大约阅读时间需要 4 分钟。

检测设备方向

监听 deviceorientation

window.addEventListener("deviceorientation", handleOrientation, true);复制代码

event中包含以下几个值

属性 描述
type 事件的类型。
bubbles 事件是否正常起泡
cancelable 该活动是否可以取消?
alpha 设备绕Z轴的当前方向; 也就是说,设备围绕垂直于设备的线旋转多远。
beta 设备围绕X轴的当前方向; 也就是说,设备向前或向后倾斜多远。
gamma 设备绕Y轴的当前方向; 也就是说,设备向左或向右转动多远。
absolute 如果方向是作为设备坐标系和地球坐标系之间的差异提供的,则该值是该值; 如果设备无法检测到地球坐标系,则此值为false。

需要重点关注这四个返回值

  • alpha
  • beta
  • gamma
  • absolute

手机轴线如图:

一、理解alpha

alpha 是设备绕Z轴的方向

它的取值范围在0到360度之间。当设备顶端指向正北方向时,该属性的取值为0。

即:围绕垂直手机屏幕的轴转动 如图:

二、理解beta

beta 是设备绕X轴的方向

它的取值范围在-180到180度之间。当设备与地球表面保持平行时,该属性的取值为0。

即:围绕平行音量键的轴转动 如图:

三、理解gamma

gamma 是设备绕Y轴的方向

它的取值范围在-90到90度之间。当该设备与地球表面保持平行时,该属性的取值为0。

即:围绕平行充电口的轴转动 如图:

四、理解absolute

absolute 是用来判断是否是地球坐标系。

如果当前设备坐标系与地球坐标系相对应,则返回true, 否则返回false;

返回值为true时候,可以进行使用其他坐标系作为基准

总结

alpha => 围绕垂直手机屏幕的轴转动  beta  => 围绕平行音量键的轴转动  gamma => 围绕平行充电口的轴转动  absolute => 返回是否与地球坐标系相对应复制代码

示例代码:

if (window.DeviceOrientationEvent) {    window.addEventListener("deviceorientation", function(event) {        // alpha: 围绕垂直手机屏幕的轴转动的旋转角度        var rotateDegrees = event.alpha;        // gamma: 围绕平行充电口的轴转动的旋转角度        var leftToRight = event.gamma;        // beta: 围绕平行音量键的轴转动的旋转角度        var frontToBack = event.beta;        handleOrientationEvent(frontToBack, leftToRight, rotateDegrees);    }, true);}var handleOrientationEvent = function(frontToBack, leftToRight, rotateDegrees) {    // 弹奏一曲夏威夷吉他};复制代码

对于浏览器兼容性方面 可以在使用时候参照MDN的说明

转载于:https://juejin.im/post/5cadac7b6fb9a068616b26bc

你可能感兴趣的文章
【性能优化】直方图
查看>>
Visual C#之核心语言
查看>>
[J2ME]Nokia播放音乐时发生MediaException的解决办法
查看>>
【转】CSS 与 HTML5 响应式图片
查看>>
代码重构(五):继承关系重构规则
查看>>
Windows App开发之集合控件与数据绑定
查看>>
五分钟创建一个自己的NPM包
查看>>
iOS多线程编程:线程同步总结 NSCondtion
查看>>
Flutter开发环境安装
查看>>
QQ登录的那些坑(如何开发qq登陆功能)
查看>>
中大型网站技术架构演变过程
查看>>
深入剖析OkHttp系列(五) 来自官方的事件机制
查看>>
【前端词典】进阶必备的网络基础(下)
查看>>
ARTS训练第三周
查看>>
12月21日云栖精选夜读:阿里云总裁胡晓明:AI泡沫过后,下一站是“产业AI”...
查看>>
一出好戏不止是部电影,它也正接近你的生活。
查看>>
Angular 表单验证类库 ngx-validator 1.0 正式发布
查看>>
刨根问底——Handler
查看>>
H5活动刮刮卡功能的实现与注意事项
查看>>
搞定Go单元测试(三)—— 断言(testify)
查看>>