前面先容了html5重力感应的基本事理:

html5重力感应阐发附源码

本文将结合实例给大家先容利用HTML5的重力运动和方向传感器实现手机摇一摇效果。

html5指南针效果html5重力感应后果摇一摇 HTML

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演示。

http://bbs.qietu.com/html/yaoyiyao/