欢迎您访问我爱IT技术网,今天小编为你分享的javascript教程:【HTML5使用DeviceOrientation实现摇一摇功能】,下面是详细的讲解!
HTML5使用DeviceOrientation实现摇一摇功能
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="http://www.jb51.net/article/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演示。
以上所述就是本文的全部内容了,希望大家能够喜欢。
关于HTML5使用DeviceOrientation实现摇一摇功能的用户互动如下:
相关问题:使用html5开发移动端应用采用什么框架
答:随着使用智能手机的人越来越多,手机网站开发项目也成为一种潮流。可是您知道机网站开发框架有几种吗? 1. LungoJS 这个是被认为开发移动网站最好的HTML5开发框架,使用 HTML5/CSS3 和 JavaScript 技术。可帮助创建基于 iOS、 Android、 Blackber... >>详细
相关问题:如何实现html5页面,自动提示添加到主屏幕
答:添加图标到主屏幕是Web App的第一步: 添加图标到屏幕里的有两种属性值apple-touch-icon和apple-touch-icon-precomposed,区别就在于是否会应用iOS中自动给图标添加的那层高光。 由于iPhone以及iPad都有两种分辨率的设备存在,图标的尺寸就需要... >>详细
相关问题:我用html5写的摇一摇的功能,用UC浏览器打开可以使...
答:是不是封装成webview后没有调用重力感应,或者完全失效...不太懂.看到网上说用phonegap可以调用重力感应之类的传感器.. >>详细
- 【firefox】firefox浏览器不支持innerText的解决
- 【Extjs】Extjs学习过程中新手容易碰到的低级错误
- 【clearInterval】js clearInterval()方法的定义
- 【dom】javascript dom追加内容实现示例-追加内容
- 【checkbox】让checkbox不选中即将选中的checkbox
- 【Array】js中更短的 Array 类型转换-类型转换
- 【append】append和appendTo的区别以及appendChil
- 【ExtJs】ExtJs 表单提交登陆实现代码-表单提交-
- 【addClass】javascript自定义的addClass()方法
- 【Event】jquery下为Event handler传递动态参数的
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-