html5实现摇一摇功能
2015-11-30 00:17
686 查看
原理:使用DeviceMotion实现,关于DeviceMotion介绍可以查看
https://developer.mozilla.org/en-US/docs/Web/Reference/Events/devicemotion
通过DeviceMotionEvent,可以获得accelerationIncludingGravity的x,y,z属性,根据x,y,z属性的变化来判断设备是否有摇一摇的事件发生。
accelerationIncludeingGravity说明:
The acceleration of the device. This value includes the effect of gravity, and may be the only value available on devices that don’t have a gyroscope to allow them to properly remove gravity from the data.
代码如下:
https://developer.mozilla.org/en-US/docs/Web/Reference/Events/devicemotion
通过DeviceMotionEvent,可以获得accelerationIncludingGravity的x,y,z属性,根据x,y,z属性的变化来判断设备是否有摇一摇的事件发生。
accelerationIncludeingGravity说明:
The acceleration of the device. This value includes the effect of gravity, and may be the only value available on devices that don’t have a gyroscope to allow them to properly remove gravity from the data.
代码如下:
[code]<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="content-type" content="text/html;charset=utf-8"> <title> html5使用DeviceMotionEvent实现摇一摇 </title> <style type="text/css"> .center{position:absolute; width:640px; height:480px; left:50%; top:50%; margin-left:-320px; margin-top:-240px; line-height:480px; text-align:center; font-size:100px; } .normal{background:#000000;} .normal .txt{color:#FFFFFF;} .doing{background:#FF0000;} .doing .txt{color:#FFFF00;} </style> </head> <body id="mybody" class="normal"> <div id="txt" class="txt center">请执行摇一摇</div> </body> <script type="text/javascript"> var doing = 0; // 判断是否在动画显示中 var speed = 23; // 定义摇动的速度数值 var lastx = 0; var lasty = 0; var lastz = 0; function handleMotionEvent(event) { var x = event.accelerationIncludingGravity.x; var y = event.accelerationIncludingGravity.y; var z = event.accelerationIncludingGravity.z; if(doing==0){ if(Math.abs(x-lastx)>speed || Math.abs(y-lasty)>speed){ doing = 1; show(); } } lastx = x; lasty = y; lastz = z; } function show(){ document.getElementById('mybody').className = 'doing'; document.getElementById('txt').innerHTML = '执行了摇一摇'; setTimeout(function(){ doing=0; document.getElementById('mybody').className='normal'; document.getElementById('txt').innerHTML = '请执行摇一摇'; },3000); } window.addEventListener("devicemotion", handleMotionEvent, true); </script> </html>
相关文章推荐
- HTML5拖拽实现的小例子
- HTML5
- 《HTML5与CSS3基础教程》第1-3章
- Adobe edge animate制作HTML5动画可视化工具(一)
- 【HTML5】WebSocket和SSE
- HTML5 localStorage 本地存储
- HTML5创建一个径向/圆渐变
- (HTML5)phonegap的基础入门(一)
- HTML5创建线条渐变
- HTML5绘制空心的文本
- HTML5绘制实心的文本
- H5手机开发锁定表头和首列(惯性滚动)解决方案
- 【HTML5+css3】学习笔记之实体、元数据和全局属性
- 【HTML5+css3】学习笔记之表单元素
- 【HTML5+css3】学习笔记之音频元素和视频元素
- 【HTML5+css3】学习笔记之嵌入元素
- 【HTML5+css3】学习笔记之文档元素
- 【HTML5+css3】学习笔记之元素汇总
- 【HTML5+css3】学习笔记之html5介绍
- 移动设备HTML5页面布局