HTML5有一个重要特性:DeviceOrientation,它将底层的方向和运动传感器进行了高级封装,它使我们能够很容易的实现重力感应、指南针等有趣的功能。本文将结合实例给大家介绍使用HTML5的重力运动和方向传感器实现手机摇一摇效果。

查看演示 下载源码

DeviceOrientation包括两个事件:

1、deviceOrientation:封装了方向传感器数据的事件,可以获取手机静止状态下的方向数据,例如手机所处角度、方位、朝向等。

2、deviceMotion:封装了运动传感器数据的事件,可以获取手机运动状态下的运动加速度等数据。

HTML

页面上有一个div#hand,用来放置一个手摇的图片,div#result用来展示摇动后的结果信息。

<div id="hand" class="hand hand-animate"></div>
<div id="result"></div>

我们可以使用CSS3来增强页面效果,使用-webkit-animation动画效果实现手摇图片的动态效果,具体请下载源代码查看。

Javascript

“摇一摇”这个动作即“一定时间内设备了一定距离”,因此通过devicemotion监听设备晃动获取到的x, y, z轴的 值在一定时间范围内的变化率,即判断设备是否有进行晃动。而为了防止正常移动的误判,需要给该变化率设置一个合适的临界值。

HTML5判断设备晃动的代码我们使用已经封装好的shake.js,项目地址:https://github.com/alexgibson/shake.js。

<script src="shake.js"></script>

首先实例化Shake,然后启动开始监听设备运动情况,监听设备运动,回调监听结果:shakeEventDidOccur。

window.onload = function() { var myShakeEvent = new Shake({ threshold: 15 }); myShakeEvent.start(); window.addEventListener('shake', shakeEventDidOccur, false); function shakeEventDidOccur () { var result = document.getElementById("result"); result.className = "result"; var arr = ['妹子一枚','福利图片一套','码农笔记一本','土豪金一台']; var num = Math.floor(Math.random()*4); result.innerHTML = "恭喜,摇得"+arr[num]+"!"; setTimeout(function(){ result.className = "result result-show"; }, 1000); }
};

这里,函数shakeEventDidOccur()可以自定义,本例是将摇晃后的结果返回在页面上展示出来,请看DEMO演示。

来源于helloweba.com 原文链接:http://www.helloweba.com/view-blog-287.html

下载shake:shake.js-master

justcode.ikeepstudying.com

HTML5手机重力与方向感应的应用——摇一摇效果相关推荐

  1. html5之DeviceOrientation 手机重力与方向感应

    HTML5有一个重要特性:DeviceOrientation,它将底层的方向和运动传感器进行了高级封装,它使我们能够很容易的实现重力感应.指南针等有趣的功能. DeviceOrientation包括两 ...

  2. HTML5+PHP+jQuery手机摇一摇换衣

    在上一篇文章中,我们了使用HTML5可以侦听到手机晃动从而实现摇一摇效果.手机摇一摇可以应用到很多场景中,如摇一摇换抽奖,摇一摇搜歌等.本文我将给大家介绍如何使用HTML5+PHP+jQuery实现手 ...

  3. javascript检查移动设备是否支持重力方向感应

    javascript如何检查移动设备,如手机平台是否支持重力或者方向感应.可以使用html5提供的重力和方向感应接口来判断.html5 中针对高端手机提供了重力感应和重力加速的接口,开发可以利用这个接 ...

  4. php重力传感器,HTML5中如何调用手机重力感应的接口

    刚刚过去的一年里基于微信的H5营销可谓是十分火爆,通过转发朋友圈带来的病毒式传播效果相信大家都不太陌生吧,刚好最近农历新年将至,我就拿一个"摇签"的小例子来谈一谈HTML5中如何调 ...

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

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

  6. html5 360 重力 感应,H5案例分享:html5重力感应事件

    html5重力感应事件 一.手机重力感应图形分析 1.设备围绕z轴的旋转角度为α,α角度的取值范围在[0,360). 设备在初始位置,与地球(XYZ)和身体(XYZ)某个位置对齐. 设备围绕z轴的旋转 ...

  7. android手机重力感应例子

    手机重力感应实现简单介绍 现在有很多游戏是通过摇晃手机实现的,比如赛车游戏 摇骰子游戏 迷宫游戏 等等 . 今天我用简单的代码为大家介绍一下android 下重力感应的实现方式 下面是一个模拟器的屏幕 ...

  8. Android 手机重力感应实现简单介绍

    手机重力感应实现简单介绍            现在有很多游戏是通过摇晃手机实现的,比如赛车游戏 摇骰子游戏 迷宫游戏 等等 . 今天我用简单的代码为大家介绍一下android 下重力感应的实现方式 ...

  9. linux屏幕旋转后触控不准,手机重力感应失效解决方法 不能自动旋转屏幕怎么设置...

    如今手机已经成为人们生活中必不可少的一个工具了,在使用过程也常常会遇到各种各样的问题,比如当手机重力感应失效的时候应该怎么解决呢,手机不能自动旋转屏幕要怎么设置,针对这个问题下面就为大家带来最新解决方 ...

最新文章

  1. 文档扫描仪的构建——使用Python,OpenCV应用透视变换来获得图像的自顶向下的“鸟瞰图”
  2. leetcode 5077. 按列翻转得到最大值等行数(Flip Columns For Maximum Number of Equal Rows)
  3. python当用户输入的不是整数_当用户输入字符串而不是整数时,如何保护我的python代码?...
  4. Java EE企业系统性能问题的原因和解决建议
  5. 12306加密传输_前沿一键发送“文图音视频” 支持加密传输、图形密码、保护用户隐私……5G消息要来了!...
  6. AS3学习笔记(一)基础知识
  7. 深入Linux文件系统
  8. 计算机未来职业人生规划目标与行动措施,计算机职业规划书1500字
  9. 分享32个高质量的自学网站
  10. 【转载】气象数据相关资源
  11. 计算机利用if函数总评,Excel中IF函数的嵌套用法_
  12. 服务器排队系统怎么做,多服务器排队系统的平均排队时间的近似分析
  13. linux hci0 进程,教程 - 在 Azure Stack HCI 上的 AKS 中部署 Linux 应用程序 - AKS-HCI | Microsoft Docs...
  14. 看表空间大小,查询表空间名的表空间文件存放位置,矿展表空间,查看表空间名称...
  15. OSPF 协议中的一个普通区域通过ASBR 注入192.168.0.0/24~192.168.3.0/24 共4 条路由,在ABR 中配置聚合为一条聚合路由192.168.0.0/22,此时ABR 会
  16. SQL优化13连问,收藏好!
  17. vue 动态渲染图片 不出来
  18. java之get/set方法的作用:灵活、安全
  19. 著名ai换脸网站_AI如何从著名的死去艺术家那里删除新音乐
  20. 怎么在计算机关闭文件夹隐藏,电脑文件夹名、文件夹怎么隐藏?

热门文章

  1. 大盗阿福(信息学奥赛一本通-T1301)
  2. 5 WM配置-主数据-定义存储类型(Storage Type)
  3. tensorflow学习笔记1
  4. Python with open() as 读写文件
  5. 软件定义存储的特征及如何工作
  6. python_安装PIL/pillow
  7. 训练(training)和推理\推断(inference)的关系?
  8. mui 图片预览(自定义)功能 - 案例篇
  9. uni-app + vue-cli3 安装axios、vant等依赖 - 操作篇
  10. markdown编辑器介绍 - 更具表达性的文档格式