关于js陀螺仪的理解分析


Posted in Javascript onApril 11, 2019

检测设备方向

监听 deviceorientation

window.addEventListener("deviceorientation", handleOrientation, true);

event中包含以下几个值

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

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

  • alpha
  • beta
  • gamma
  • absolute

手机轴线如图:

关于js陀螺仪的理解分析

一、理解alpha

alpha 是设备绕Z轴的方向

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

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

如图:

关于js陀螺仪的理解分析

二、理解beta

beta 是设备绕X轴的方向

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

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

如图:

关于js陀螺仪的理解分析

三、理解gamma

gamma 是设备绕Y轴的方向

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

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

如图:

关于js陀螺仪的理解分析

四、理解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的说明

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
JavaScript类库D
Oct 24 Javascript
jQuery图片轮播的具体实现
Sep 11 Javascript
JavaScript自定义方法实现trim()、Ltrim()、Rtrim()的功能
Nov 03 Javascript
JavaScript使用setInterval()函数实现简单轮询操作的方法
Feb 02 Javascript
js老生常谈之this,constructor ,prototype全面解析
Apr 05 Javascript
轻松掌握jQuery中wrap()与unwrap()函数的用法
May 24 Javascript
Sortable.js拖拽排序使用方法解析
Nov 04 Javascript
详解vue-cli构建项目反向代理配置
Sep 07 Javascript
VSCode 配置React Native开发环境的方法
Dec 27 Javascript
Vue 创建组件的两种方法小结(必看)
Feb 23 Javascript
解决angularjs WdatePicker ng-model的问题
Sep 13 Javascript
vue滚动tab跟随切换效果
Jun 29 Javascript
angular 表单验证器验证的同时限制输入的实现
Apr 11 #Javascript
angular 实现同步验证器跨字段验证的方法
Apr 11 #Javascript
vue实现新闻展示页的步骤详解
Apr 11 #Javascript
记一次用vue做的活动页的方法步骤
Apr 11 #Javascript
vue数据初始化initState的实例详解
Apr 11 #Javascript
Vue起步(无cli)的啊教程详解
Apr 11 #Javascript
vue+vuex+json-seiver实现数据展示+分页功能
Apr 11 #Javascript
You might like
使用PHP Socket 编程模拟Http post和get请求
2014/11/25 PHP
PHP使用in_array函数检查数组中是否存在某个值
2015/03/25 PHP
使用php转义输出HTML到JavaScript
2015/03/27 PHP
PHP基于SMTP协议实现邮件发送实例代码
2017/04/27 PHP
php菜单/评论数据递归分级算法的实现方法
2019/08/01 PHP
jQuery实现 注册时选择阅读条款 左右移动
2013/04/11 Javascript
jquery sortable的拖动方法示例详解
2014/01/16 Javascript
javascript中使用new与不使用实例化对象的区别
2015/06/22 Javascript
新手快速学习JavaScript免费教程资源汇总
2015/06/25 Javascript
基于Jquery实现万圣节快乐特效
2015/11/01 Javascript
Vue组件化通讯的实例代码
2017/06/23 Javascript
基于jquery实现多级菜单效果
2017/07/25 jQuery
如何理解Vue的.sync修饰符的使用
2017/08/17 Javascript
JavaScript实现好看的跟随彩色气泡效果
2020/02/06 Javascript
[00:34]DOTA2上海特级锦标赛 Spirit战队宣传片
2016/03/04 DOTA
Python selenium 父子、兄弟、相邻节点定位方式详解
2016/09/15 Python
Python计算两个日期相差天数的方法示例
2017/05/23 Python
使用Python实现简单的服务器功能
2017/08/25 Python
Python制作动态字符图的实例
2019/01/27 Python
在Mac中PyCharm配置python Anaconda环境过程图解
2020/03/11 Python
Python3 filecmp模块测试比较文件原理解析
2020/03/23 Python
Html5实现用户注册自动校验功能实例代码
2016/05/24 HTML / CSS
1688平价精选商城:阿里集团旗下,工厂出厂价格直销
2017/04/24 全球购物
美国购买新书和二手书网站:Better World Books
2018/10/31 全球购物
美国精油公司:Plant Therapy
2019/05/17 全球购物
绘儿乐产品官方在线商店:Crayola.com
2019/09/07 全球购物
好的自荐信的要求
2013/10/30 职场文书
法人代表授权委托书
2014/04/08 职场文书
群众路线批评与自我批评发言稿
2014/10/16 职场文书
2014年乡镇工会工作总结
2014/12/02 职场文书
优秀班主任申报材料
2014/12/16 职场文书
校长个人总结
2015/03/03 职场文书
财政局长个人总结
2015/03/04 职场文书
学习雷锋精神倡议书
2015/04/27 职场文书
加薪申请报告范本
2015/05/15 职场文书
撤诉申请书法院范本
2015/05/18 职场文书