关于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 相关文章推荐
jquery 单引号和双引号的区别及使用注意
Jul 31 Javascript
jQuery中Ajax的get、post等方法详解
Jan 20 Javascript
js简单的点击返回顶部效果实现方法
Apr 10 Javascript
谈谈JavaScript类型系统之Math
Jan 06 Javascript
JS调用某段SQL语句的方法
Oct 20 Javascript
jquery 多个radio的click事件实例
Dec 03 Javascript
为输入框加入数字js校验代码分享
Nov 02 Javascript
推荐10款扩展Web表单的JS插件
Dec 25 Javascript
使用Vue构建可重用的分页组件
Mar 26 Javascript
JS获取浏览器地址栏的多个参数值的任意值实例代码
Jul 24 Javascript
jquery实现下载图片功能
Jul 18 jQuery
javascript中innerHTML 获取或替换html内容的实现代码
Mar 17 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程序员编程注意事项
2008/04/10 PHP
php获取网页上所有链接的方法
2015/04/03 PHP
js实现DIV的一些简单控制
2007/06/04 Javascript
jQuery 行背景颜色的交替显示(隔行变色)实现代码
2009/12/13 Javascript
jQuery 遍历json数组的实现代码
2020/09/22 Javascript
JQuery对class属性的操作实现按钮开关效果
2013/10/11 Javascript
鼠标拖拽移动子窗体的JS实现
2014/02/25 Javascript
jquery中each方法示例和常用选择器
2014/07/08 Javascript
jQuery统计上传文件大小的方法
2015/01/24 Javascript
jQuery实现炫酷的鼠标轨迹特效
2015/02/01 Javascript
javaScript的函数对象的声明详解
2015/02/06 Javascript
jQuery找出网页上最高元素的方法
2015/03/20 Javascript
AngualrJs清除定时器遇到的坑
2017/10/13 Javascript
jQuery响应滚动条事件功能示例
2017/10/14 jQuery
bootstrap中日历范围选择插件daterangepicker的使用详解
2018/04/17 Javascript
用Node编写RESTful API接口的示例代码
2018/07/04 Javascript
微信小程序实现自上而下字幕滚动
2018/07/14 Javascript
Vue中的异步组件函数实现代码
2018/07/20 Javascript
python中cPickle用法例子分享
2014/01/03 Python
Python常用模块介绍
2014/11/21 Python
Python 12306抢火车票脚本 Python京东抢手机脚本
2018/02/06 Python
python 3.6.5 安装配置方法图文教程
2018/09/18 Python
Python3 执行Linux Bash命令的方法
2019/07/12 Python
python中with语句结合上下文管理器操作详解
2019/12/19 Python
python 实现将Numpy数组保存为图像
2020/01/09 Python
解决安装新版PyQt5、PyQT5-tool后打不开并Designer.exe提示no Qt platform plugin的问题
2020/04/24 Python
GUESS德国官网:美国牛仔服装品牌
2017/02/14 全球购物
军训的自我鉴定
2013/12/10 职场文书
报到证丢失证明
2014/01/11 职场文书
酒吧创业计划书
2014/01/18 职场文书
畜牧兽医本科生的自我评价
2014/03/03 职场文书
给校长的建议书400字
2014/05/15 职场文书
车间安全生产标语
2014/06/06 职场文书
一文彻底理解js原生语法prototype,__proto__和constructor
2021/10/24 Javascript
Win11绿屏怎么办?Win11绿屏死机的解决方法
2021/11/21 数码科技
【海涛解说】pis亲自推荐,其实你从来不会玩NW
2022/04/01 DOTA