概念

地球坐标系

地球坐标系是相对于地心的,也就是说,它的轴是基于重力方向和磁场北方向。我们使用大写的X,Y,Z来描述地球坐标系的轴。

X轴沿着地平面,垂直于Y轴,向东为正,向西为负。

Y轴沿着地平面,向北(北极,不是磁场北)为正,向南为负。

Z轴垂直于地平面,想象成一条线连接着设备跟地心。背对地心的方向为正,指向地心的方向为负。

设备坐标系

设备坐标系是相对于设备中心的。我们使用小写的x,y,z来描述它的轴。

x轴沿着屏幕表面,向右为正,向左为负。

y轴沿着屏幕表面,向上为正,向下为负。

z轴垂直屏幕表面或键盘,远离屏幕的方向为正。

Alpha

围绕z轴旋转设备将使alpha角度值发生变化:

alpha为0°时表示设备的顶部正指北极方向,当设备向左旋转时,alpha将增加。

Beta

围绕x轴旋转,也就是前后旋转,将使beta值发生改变:

当beta为0° 时表示设备顶部和底部与地表面的距离是一样的,当设备向前翻转时,beta递增到180°,向后翻转递减到-180°。

Gamma

当围绕y轴旋转,也就是左右倾斜设备时,将使gamma值发生改变:

gamma等于0°表示设备左右两边与地表面的距离相等,当设备向右翻转时,gamma递增到90°,向左翻转时,递减到-90°。

指南针实现

要接收设备方向变化信息,你只需要注册监听deviceorientation事件:

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

注册完事件监听处理函数后(对应这个例子中的handleOrientation),监听函数会定期地接收到最新的设备方向数据。

方向事件对象中包含四个值:

DeviceOrientationEvent.absolute(返回的是个bool值表示设备是否绝对支持方向定位)

DeviceOrientationEvent.alpha(0°为指北方向)

DeviceOrientationEvent.beta

DeviceOrientationEvent.gamma

if (window.DeviceOrientationEvent) {

var timer = null, nowTime = +new Date();

window.addEventListener("deviceorientation", function(event) {

var alpha = null;

if (event.webkitCompassHeading) {

alpha = event.webkitCompassHeading;

} else {

alpha = event.alpha;

}

var selfDegress = 360 - alpha;

if (+new Date() - nowTime > 1000) {

nowTime = +new Date();

var userPointer = document.getElementById("userPointer");

if (userPointer) {

userPointer.style.transform = "translateX(-50%) rotate(" + selfDegress + "deg)";

userPointer.style.transformOrigin = "50% 100%";

}

}

}, false)

}

html5 指南针,html5指南针实现相关推荐

  1. 兄弟连html5在线画板,IT兄弟连 HTML5教程 HTML5做到了与之前版本的兼容

    原标题:IT兄弟连 HTML5教程 HTML5做到了与之前版本的兼容 为了保证HTML5能与之前的HTML版本达到最大的兼容,HTML5对一些元素标记的省略.boolean值的属性,以及引号的省略这几 ...

  2. 对html5的了解,HTML5——对HTML5的认识

    首先非常感谢李刚老师出的这本书<HTML5/CSS3/JavaScript讲义>,今天读了第一章节的内容,趁热打铁,总结一下. HTML5的时代已经到来,它对所有的前端开发人员来说是一种福 ...

  3. html5发展前景-兄弟连,IT兄弟连 HTML5教程 HTML5的曲折发展过程 HTML5的诞生

    原标题:IT兄弟连 HTML5教程 HTML5的曲折发展过程 HTML5的诞生 十年磨一剑,正如我们所看到的一样,HTML5大潮正来势汹汹.但也正如我们所知道的一样,HTML5是一种技术标准,它的语义 ...

  4. 下列关于html5表单的多样输入方式,IT兄弟连 HTML5教程 HTML5表单 多样的输入类型1...

    原标题:IT兄弟连 HTML5教程 HTML5表单 多样的输入类型1 HTML5拥有多个新的表单输入类型,这些新特性提供了更好的输入控制和验证.并不是所有的主浏览器都支持新的input类型,不过我们可 ...

  5. 这不仅仅是html5的HTML5问题

    这不仅仅是html5的HTML5问题,它还关系到了我们应该如何工作这类原则性的问题,css working group更青睐于使用www-风格的输入.因为目标人群是web开发者,所以lea并不担心向后 ...

  6. css html5简介,HTML5 简介......

    HTML5 示例 实例 Your browser does not support the video tag. 什么是 HTML5? HTML5 简介 HTML5 是最新的 HTML 标准. HTM ...

  7. html5代码好学吗,0基础能学习Html5吗?Html5好学吗?

    原标题:0基础能学习Html5吗?Html5好学吗? 0基础可以学习Html5吗?这两年一直是被挂在嘴边的话题,随着人们对用户体验的要求越来越高,前端开发技术难度越来越大,所以对于IT从业者来讲,前端 ...

  8. 免费html5代码,HTML5(示例代码)

    一.什么是HTML5 1.1 HTML5 简介 万维网的核心语言.标准通用标记语言下的一个应用超文本标记语言(HTML)的第五次重大修改,作为新HTML语言,具有新的元素.属性和行为 XHTML可扩展 ...

  9. 200套工作室设计行业响应式Html5模板HTML5+CSS3设计网站模板简洁设计师作品展示响应式模板整洁扁平宽屏CSS3网站模板html5网页静态模板Bootstrap扁平化网站源码css3手机se

    200套工作室设计行业响应式Html5模板HTML5+CSS3设计网站模板简洁设计师作品展示响应式模板整洁扁平宽屏CSS3网站模板html5网页静态模板Bootstrap扁平化网站源码css3手机se ...

  10. 一个html基本写法,HTML5教程:HTML5的基础写法

    HTML5教程:HTML5的基础写法 对比一下XHTML 1.0 Transitional的规范,html5基本上没有XHTML 1.0 Transitional严格的要求,并且简化了很多东西. •文 ...

最新文章

  1. Imagination升级PowerVR图形架构,高端移动设备或将迎来重大升级
  2. cocos2d-x 3.0游戏实例学习笔记 《跑酷》 第五步--button控制主角Jumpamp;Crouch
  3. mysql 常见存储过程,MYSQL存储过程
  4. 九十三、动态规划系列之股票问题(下)
  5. 迪普科技以近50%份额全面中标国家电网2016信息化硬件采购
  6. 安迈云加入GDCA全球分布式云联盟,携手业内共建新生态
  7. flowable用户组的处理
  8. 截取视频段转换为GIF动图
  9. jpa 数据库方言_使用Hibernate和Oracle 10g方言,如何用JPA生成我的id?
  10. 太慢不能忍!CPU 又拿硬盘和网卡开刀了!
  11. python queue threading_Python 多线程 -thread threading Queue- 简单学习
  12. 001----Mysql隔离级别
  13. Windows系统下使用NSIS工具制作QT软件的安装包
  14. PyCharm下载安装主题
  15. 项目新添加页面svn上传
  16. yar php使用,php的轻量级rpc框架yar
  17. 越南VinFast冲刺美股:不到2年亏28亿美元 要与蔚小理比高低
  18. 读书笔记:《软件架构师应该知道的97件事》
  19. [转帖]改变无数人人生的32句实话[ChaseDream论坛]
  20. 笔记本电脑连接wifi显示无网络访问权限怎么办?

热门文章

  1. 即将步入研究生,有什么建议?
  2. 用keyboard模块模拟记录键盘操作
  3. javascript设计模式-单例模式(singleton pattern)
  4. Twitter赢在开放,三年创造奇迹
  5. 手持式信号综合分析仪 天馈线驻波比频谱分析仪 天馈线+频谱+干扰分析仪 4.4GHZ无线综合测试仪
  6. 使用 KubeSphere 和极狐GitLab 打造云原生持续交付系统
  7. html canvas粒子线条组合动画背景特效
  8. 科研热点|2023年IEEE Fellow入选者名单公布,中国学者占比1/4~
  9. JAVA数组 day03
  10. 海南实现旅游总收入1.06亿元人民币