目录

DeviceMotionEvent 简 介

devicemotion 设备运动

摇一摇改变背景色


DeviceMotionEvent 简 介

官方文档地址:https://w3c.github.io/deviceorientation/

html 5 提供了几个新的 DOM 事件来获得设备物理(主要针对移动端)方向及运动的信息,包括:陀螺仪、罗盘及加速计。

1)deviceorientation (设备方向/定位):提供设备的物理方向信息,表示为一系列本地坐标系的旋角。
2)devicemotion (设备运动/手势):提供设备的加速度信息,表示为定义在设备上的坐标系中的笛卡尔坐标,其还提供了设备在坐标系中的自转速率。
3)compassneedscalibration (罗盘校准):用于通知 Web 站点使用罗盘信息校准上述事件。

开发者从各个内置传感器那里获取未经修改的传感数据,并观测或响应设备各种运动和角度变化,这些传感器包括陀螺仪、加速器和磁力仪(罗盘)。

加速器和陀螺仪的数据都是描述沿着设备三个方向轴上的位置,对于一个竖屏摆放的设备来说,X 方向从设备的左边(负)到右边(正),Y 方向则是由设备的底部(-)到顶部(+),而 Z 方向为垂直于屏幕由设备的背面(-)到正面(+)。

DeviceMotionEvent 会在设备发生有意义的摆动(或运动)时产生,事件对象封装有产生的间距值,旋转率,和设备加速度。

加速度的计算方式是重力和用户产生的两个加速度矢量之和,设备是通过 陀螺仪和加速计来区别这两者的,通过DeviceMotion 对设备运动状态的判断,则可以在网页上就实现“摇一摇”的交互效果。

devicemotion 设备运动

devicemotion:监听手机加速度变化的事件(比如 手机疯狂摇摆)

有 4 个只读属性:

(1)accelerationIncludingGravity:重力加速度(包括重心引力9.8)

(2)acceleration:加速度(需要设备陀螺仪支持)

(3)rotationRate(alpha,beat,gamma);旋转速度

(4)interval:获取的时间间隔

注册一个devicemotion时间的接收器:

 window.addEventListener("devicemotion", function(event) {// 处理event.acceleration、event.accelerationIncludingGravity、// event.rotationRate和event.interval}, true);

摇一摇改变背景色

下面直接以一个例子进行说明,手机摇一摇来改变页面背景颜色。

<!doctype html>
<html>
<head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><title>HTML5 手机摇一摇</title><!-- JQuery CDN --><script src="https://code.jquery.com/jquery-3.3.1.min.js"integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8="crossorigin="anonymous"></script><script type="text/javascript">/*** 颜色数组* @type {Array}*/var colorArray = new Array('#fff', '#ff0', '#f0f', '#0ff', '#f00', '#0f0', '#00f', "#000");/**window.DeviceMotionEvent:判斷浏览器是否支持此时间*/if (window.DeviceMotionEvent) {/*** speed:速度,根据摇一摇的动作幅度可以适当增加或减小* cx、cy、cz:分别是当前在 x,y,z 3个方向上的加速度* lastX、lastY、lastZ:分别是上一次在 x,y,z 3个方向上的加速度*/var speed = 20;var cx = cy = cz = lastX = lastY = lastZ = 0;/**注册devicemotion(设备运动)事件* Window.prototype.addEventListener = function(type,listener,useCapture)* type:事件类型,如 devicemotion、deviceorientation、compassneedscalibration 等* listener:事件触发的回调函数,也可以提取出来单独写* useCapture:是否捕获* */window.addEventListener('devicemotion', function (evenData) {/**获取重力加速度* x、y、z 三个属性,分别表示 3 个方向上的重力加速度* */var acceleration = evenData.accelerationIncludingGravity;cx = acceleration.x;cy = acceleration.y;cz = acceleration.z;/**只要手机有稍微的抖动,就会进入此回调函数* 当某一个方向上的加速度超过 speed 的值时,改变背景色*/if (Math.abs(cx - lastX) > speed || Math.abs(cy - lastY) > speed || Math.abs(cz - lastZ) > speed) {document.body.style.backgroundColor = colorArray[Math.round(Math.random() * 10) % 8];/** 将数据打印出来瞧一瞧*/$("#x").append("cx:" + cx + "\r\n");$("#y").append("cy:" + cy + "\r\n");$("#z").append("cz:" + cz + "\r\n");}lastX = cx;lastY = cy;lastZ = cz;}, true);} else {alert('您的浏览器不支持摇一摇功能.');}</script>
</head>
<body>
手机摇一摇,改变手机屏幕颜色。
<p>x 方向</p>
<p id="x"></p><p>y 方向</p>
<p id="y"></p><p>z 方向</p>
<p id="z"></p>
</body>
</html>

效果如下:

H5 设备运动事件 DeviceMotionEvent相关推荐

  1. H5鼠标拖动事件(drag)

    H5鼠标拖动事件 一.元素拖动 二.相关事件 1.拖拽元素 (1)dargstart (2)drag (3)dragend 2.目标元素 (1)drop (2)dragover (3)dragente ...

  2. Scratch基础知识总结(运动~事件)

    在Scratch中,界面每个部分都有自己的名称,如舞台区.角色区以及指令分类区等.今天我们就详细讲一讲指令分类区中,从运动到运算的各分类作用以及指令. 在Scratch中默认分类有9个,分别是:运动. ...

  3. 彻底理解H5的DOM事件

    我们大家都知道,人与人之间的交流可以通过语言,文字,肢体动作,面部微表情等,但是你知道Javascript和HTML之间是通过什么进行交互的么?你又知道Javascript和HTML之间是如何进行交互 ...

  4. H5常用拖放事件解析

    在用户拖放HTML元素中,可能会触发如下表所示的事件: 事件 事件源 描述 ondragstart 被拖动的HTML元素 开始拖动操作时触发该事件 ondrag 被拖动的HTML元素 拖动过程中会不断 ...

  5. javascript判断是否手机设备+滑动事件

    //判断是否手机端 var isMobile = false; try { //手机端 document.createEvent("TouchEvent"); isMobile = ...

  6. ios h5 用kepup事件验证获取数据问题

    1.用keyup事件手机数据在ios中的问题:ios下多数为用户提供词汇选择,因此用户选择ios提供的词汇时,不会触发keyup事件. 解决方法:在离开页面之前用DOM方法获取用户输入的内容

  7. 小程序web-view跳转H5页面,H5页面通过事件返回小程序页面

    小程序页面: //url为H5页面路径 H5页面跳转小程序页面 npm install weixin-js-sdk 在使用的vue单页面内引入:import wx from 'weixin-js-sd ...

  8. HTML5 API详解(4):最实用的API DeviceOrientation设备传感器

    DeviceOrientation将底层的方向传感器和运动传感器进行了高级封装,提供了DOM事件的支持. 这个特性包括两个事件: 1.deviceOrientation:封装了方向传感器数据的事件,可 ...

  9. 用HTML5实现手机摇一摇的功能并配上声音

    一.用HTML5实现手机摇一摇的功能并配上声音 HTML5的一个重要特性:DeviceOrientation,他将底层的方向传感器和运动传感器进行了高级封装,提供DOM事件支持. DeviceOrie ...

  10. H5监听摇一摇和手机倾斜事件(重力感应)

    摇一摇功能(DeviceMotion) 摇一摇功能是很多原生APP都可以实现的功能,如微信中的摇一摇找好友,QQ音乐中的摇一摇换歌等.它们都是利用了手机加速传感器提供的API,当监听到手机加速变化的事 ...

最新文章

  1. kdj买卖指标公式源码_“点金主图+副图+KDJ排序指标”公式源码
  2. w ndows8怎么连接网络,(Wndows8.1优化设置全面解析.doc
  3. 深度学习和目标检测系列教程 1-300:什么是对象检测和常见的8 种基础目标检测算法
  4. 定时任务框架APScheduler学习详解
  5. IntelliJ IDEA代码分屏显示
  6. 总有些代码会让你大呼“我勒个去,怎么会这样子“
  7. 以后别写程序了,几个程序员很有用的源码网站奉献给大家
  8. 用java输出语句_Java的常用输入输出语句
  9. python使用PIL把透明背景图片转成白色背景
  10. Easyui三级目录菜单+手风琴+spring mvc
  11. 【知识总结】情感分类
  12. Luogu_P4556 雨天的尾巴【题解】树上差分 线段树合并
  13. 关于苹果开发者证书的续费问题改动2021
  14. HIGEN海坚驱动器维修FDA7045伺服变频器维修
  15. 三次握手与四次挥手的爱恨情仇
  16. AI 人工智能包含的领域方向
  17. 新推荐个百度网盘不限速下载神器
  18. 【转】面向程序员的数据库访问性能优化法则
  19. Android 进阶:网络图片加载 - Glide篇
  20. HTML5期末大作业:生鲜超市网站设计——生鲜超市网站设计(5页)HTML+CSS+JavaScript 学生DW网页设计作业成品 美食站

热门文章

  1. r(AB)=r(B)则方程组ABX=0与Bx=0有完全相同的解
  2. 孙鑫VC学习笔记:第十五讲 (二) 线程创建方法
  3. ae效果英文版翻译对照表_用AE设计动态海报教程
  4. 拓端tecdat|R语言单变量和多变量(多元)动态条件相关系数DCC-GARCH模型分析股票收益率金融时间序列数据波动率
  5. 拓端tecdat|R语言社区发现算法检测心理学复杂网络:spinglass、探索性图分析walktrap算法与可视化
  6. 拓端tecdat|python主题建模可视化LDA和T-SNE交互式可视化
  7. 数据结构算法题整理5
  8. sonar mysql svn_jenkins+sonarqube+svn/git踩过的坑
  9. anaconda装完没反应
  10. The remote system refused the connection.