HTML5实现手机摇一摇的功能

简介:

利用html5实现类似微信的手机摇一摇功能,并播放音乐。

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

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


wKiom1WKWyKygBADAAJt2B9fiz8238.jpg


js如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<scirpt>
var  SHAKE_THRESHOLD = 3000;
var  last_update = 0;
var  x = y = z = last_x = last_y = last_z = 0;
function  init() {
     if  (window.DeviceMotionEvent) {
         window.addEventListener( 'devicemotion' , deviceMotionHandler,  false );
     else  {
         alert( 'not support mobile event' );
     }
}
function  deviceMotionHandler(eventData) {
     var  acceleration = eventData.accelerationIncludingGravity;
     var  curTime =  new  Date().getTime();
     if  ((curTime - last_update) > 100) {
         var  diffTime = curTime - last_update;
         last_update = curTime;
         x = acceleration.x;
         y = acceleration.y;
         z = acceleration.z;
         var  speed = Math.abs(x + y + z - last_x - last_y - last_z) / diffTime * 10000;
 
         if  (speed > SHAKE_THRESHOLD) { //一检测到摇动了,就5秒后跳转(此期间播放摇一摇的声音)
             alert( "摇动了" );
             media.setAttribute( "src" "http://dx.sc.chinaz.com/files/download/sound1/201410/5018.wav" );
             media.load();
             media.play();
             
             setTimeout( function (){location.href= 'http://www.baidu.com' ;},5000);}
         }
         last_x = x;
         last_y = y;
         last_z = z;
     }
}
</script>


html5页面如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<!DOCTYPE html>
< html >
< head >
     < meta  charset = "utf-8"  />     
    < title >HTML5实现手机摇一摇的功能</ title >
     < meta  content = "text/html; charset=utf-8"  http-equiv = "Content-Type"  />
     < meta  name = "Keywords"  content = ""  />
     < meta  name = "Description"  content = ""  />
     < meta  name = "viewport"  content = "initial-scale=1.0, user-scalable=no"  />
     <!-- Mobile Devices Support @begin -->
     < meta  content = "application/xhtml+xml;charset=UTF-8"  http-equiv = "Content-Type" >
     < meta  content = "no-cache,must-revalidate"  http-equiv = "Cache-Control" >
     < meta  content = "no-cache"  http-equiv = "pragma" >
     < meta  content = "0"  http-equiv = "expires" >
     < meta  content = "telephone=no, address=no"  name = "format-detection" >
     < meta  content = "width=device-width, initial-scale=1.0"  name = "viewport" >
     < meta  name = "apple-mobile-web-app-capable"  content = "yes"  />  <!-- apple devices fullscreen -->
     < meta  name = "apple-mobile-web-app-status-bar-style"  content = "black-translucent"  />
     <!-- Mobile Devices Support @end -->
     < meta  content = "width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no"  name = "viewport" >
     < link  rel = "shortcut icon"  href = "favicon.ico"  />
     < link  rel = "stylesheet"  type = "text/css"  href = "css/style.css"  media = "all"  />  
     < script  src = "js/jquery-1.8.2.min.js"  type = "text/javascript" ></ script >
</ head >
< body  onLoad = "init()" >
  < img  src = "images/bg.jpg"  width = "99%" >
</ body >
</ html >



在手机上试试....



OR



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
<!DOCTYPE html>
< html  lang = "en" >  
< head >  
     < meta  charset = "utf-8"  />  
     < meta  name = "viewport"  content = "width=device-width, initial-scale=1.0"  />  
     < title >摇一摇功能</ title >  
     < script  type = "text/javascript" >  
         //Javascript  
     </ script >  
</ head >  
< body  onLoad = "init()" >  
< p >用力摇一摇你手机</ p >   
< audio  src = "1.mp3"  controls = "controls"  loop  id = "audioBtn"  style = "display:none;opacity:0; height:0px; width:0px;" ></ audio >
</ body >  
</ html >  
< script >
var SHAKE_THRESHOLD = 3000;  
var last_update = 0;  
var x = y = z = last_x = last_y = last_z = 0;  
function init() {  
     if (window.DeviceMotionEvent) {  
         window.addEventListener('devicemotion', deviceMotionHandler, false);  
     } else {  
         alert('not support mobile event');  
     }  
}  
function deviceMotionHandler(eventData) {  
     var acceleration = eventData.accelerationIncludingGravity;  
     var curTime = new Date().getTime();  
     if ((curTime - last_update) > 50) {  
         var diffTime = curTime - last_update;  
         last_update = curTime;  
         x = acceleration.x;  
         y = acceleration.y;  
         z = acceleration.z;  
         var speed = Math.abs(x + y + z - last_x - last_y - last_z) / diffTime * 10000;
         if (speed > SHAKE_THRESHOLD) {  
             document.getElementById('audioBtn').play();
             setTimeout(function(){location.href='http://www.qq.com';},5000);
         }  
         last_x = x;  
         last_y = y;  
         last_z = z;  
     }  
}
</ script >






   本文转自许琴 51CTO博客,原文链接:http://blog.51cto.com/xuqin/1665074,如需转载请自行联系原作者







相关文章
|
1月前
html页面点击按钮实现页面跳转功能
html页面点击按钮实现页面跳转
58 11
|
1月前
|
移动开发 HTML5
HTML5熊猫弹跳手机小游戏源码
一款html5手机端小游戏源码,熊猫跳跃小游戏源码下载。熊猫脚底有弹簧,长按变化力度跳跃,计分游戏,html5手机熊猫也疯狂小游戏源代码。
43 5
|
1月前
|
移动开发 HTML5
HTML5实现手机端红包下落抢红包特效源码
HTML5实现手机端红包下落抢红包特效源码是一款手机移动端的抢红包小游戏源码下载。红包像下雪一样,点击抓我呀,可以抢红包,需要此款代码的朋友们可以前来下载使用。本段代码兼容目前最新的各类主流浏览器,是一款非常优秀的特效源码。
37 4
|
2月前
|
JavaScript 前端开发
电话号码正则表达式 代码 javascript+html,JS正则表达式判断11位手机号码
电话号码正则表达式 代码 javascript+html,JS正则表达式判断11位手机号码
124 1
|
3月前
|
移动开发 Android开发 数据安全/隐私保护
移动应用与系统的技术演进:从开发到操作系统的全景解析随着智能手机和平板电脑的普及,移动应用(App)已成为人们日常生活中不可或缺的一部分。无论是社交、娱乐、购物还是办公,移动应用都扮演着重要的角色。而支撑这些应用运行的,正是功能强大且复杂的移动操作系统。本文将深入探讨移动应用的开发过程及其背后的操作系统机制,揭示这一领域的技术演进。
本文旨在提供关于移动应用与系统技术的全面概述,涵盖移动应用的开发生命周期、主要移动操作系统的特点以及它们之间的竞争关系。我们将探讨如何高效地开发移动应用,并分析iOS和Android两大主流操作系统的技术优势与局限。同时,本文还将讨论跨平台解决方案的兴起及其对移动开发领域的影响。通过这篇技术性文章,读者将获得对移动应用开发及操作系统深层理解的钥匙。
|
2月前
|
存储 移动开发 UED
HTML5 的 form 的自动完成功能
在HTML5中,`&lt;form&gt;`元素具备自动完成功能,可根据用户历史输入提供建议,提高输入效率并改善体验。默认情况下,浏览器会自动开启此功能,也可通过设置`autocomplete`属性为`on`或`off`来明确开启或关闭。对于特定表单字段,如`&lt;input&gt;`,同样可以通过设置`autocomplete`属性控制自动完成行为。浏览器通过记录并存储用户的历史输入,在用户再次访问相同表单时提供相应的自动完成建议。
WK
|
3月前
|
存储 移动开发 API
哪些功能是HTML5的新增功能
HTML5作为HTML的最新版本,引入了许多新的功能和特性,这些功能极大地丰富了网页的表现力和交互性。以下是HTML5的一些新增功能:
WK
70 2
|
3月前
|
移动开发 前端开发 JavaScript
Twaver-HTML5基础学习(3)基本数据元素(Data)其他功能函数以及组Group
本文介绍了Twaver HTML5中Data类的其他功能函数,如获取和操作子网元的方法,以及组(Group)的概念和使用。文章通过示例代码展示了如何在React组件中创建组、添加图元到组中,并通过toChildren函数获取满足特定条件的图元。
43 0
Twaver-HTML5基础学习(3)基本数据元素(Data)其他功能函数以及组Group
用html+javascript打造公文一键排版系统14:为半角和全角字符相互转换功能增加英文字母、阿拉伯数字、标点符号、空格选项
用html+javascript打造公文一键排版系统14:为半角和全角字符相互转换功能增加英文字母、阿拉伯数字、标点符号、空格选项
|
3月前
|
存储 文字识别 前端开发
用html+javascript打造公文一键排版系统13:增加半角字符和全角字符的相互转换功能
用html+javascript打造公文一键排版系统13:增加半角字符和全角字符的相互转换功能