HTML5手机重力与方向感应的应用——摇一摇效果
2016-01-20 17:43
706 查看
http://www.helloweba.com/view-blog-287.html
HTML5有一个重要特性:DeviceOrientation,它将底层的方向和运动传感器进行了高级封装,它使我们能够很容易的实现重力感应、指南针等有趣的功能。本文将结合实例给大家介绍使用HTML5的重力运动和方向传感器实现手机摇一摇效果。
DeviceOrientation包括两个事件:
1、deviceOrientation:封装了方向传感器数据的事件,可以获取手机静止状态下的方向数据,例如手机所处角度、方位、朝向等。
2、deviceMotion:封装了运动传感器数据的事件,可以获取手机运动状态下的运动加速度等数据。
我们可以使用CSS3来增强页面效果,使用-webkit-animation动画效果实现手摇图片的动态效果,具体请下载源代码查看。
HTML5判断设备晃动的代码我们使用已经封装好的shake.js,项目地址:https://github.com/alexgibson/shake.js。
首先实例化Shake,然后启动开始监听设备运动情况,监听设备运动,回调监听结果:shakeEventDidOccur。
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。
http://www.helloweba.com/view-blog-287.html<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); } };
相关文章推荐
- 【转】移除HTML5 input在type="number"时的上下小箭头
- h5手机适配字体大小
- html5学习记录05:表单form,输入框
- web学习之路—H5(一)
- 浏览器不支持HTML5
- HTML5实现简单图片上传所遇到的问题及解决办法
- html5学习记录04:图片<img>标签
- html5学习记录03:超链接
- 新贵HTML5,2016的发展方向会怎样?
- html5新特性:利用history的pushState等方法来解决使用ajax导致页面后退和前进的问题
- 05. Web大前端时代之:HTML5+CSS3入门系列~H5 多媒体系
- 新贵HTML5,2016的发展方向会怎样?
- html5学习记录02:表格table
- HTML5
- h5端呼起摄像头扫描二维码并解析
- h5端呼起摄像头扫描二维码并解析
- html5 实现简单的上传
- Html5实现二维码扫描并解析
- html5学习记录01:常见标签
- h5端呼起摄像头扫描二维码并解析