HTML5实现摇一摇
2015-09-08 14:00
615 查看
一、原理:
二、效果图:
三、源码:
四、源码下载:点击下载
转自: http://www.cnblogs.com/waitingbar/p/4682215.html
利用devicemotion获取移动速度,得到device移动时相对之前某个时间的差值比
二、效果图:
三、源码:
//先判断设备是否支持HTML5摇一摇功能 if (window.DeviceMotionEvent) { //获取移动速度,得到device移动时相对之前某个时间的差值比 window.addEventListener('devicemotion', deviceMotionHandler, false); }else{ alert('您好,你目前所用的设备好像不支持重力感应哦!'); } //设置临界值,这个值可根据自己的需求进行设定,默认就3000也差不多了 var shakeThreshold = 3000; //设置最后更新时间,用于对比 var lastUpdate = 0; //设置位置速率 var curShakeX=curShakeY=curShakeZ=lastShakeX=lastShakeY=lastShakeZ=0; function deviceMotionHandler(event){ //获得重力加速 var acceleration =event.accelerationIncludingGravity; //获得当前时间戳 var curTime = new Date().getTime(); if ((curTime - lastUpdate)> 100) { //时间差 var diffTime = curTime -lastUpdate; lastUpdate = curTime; //x轴加速度 curShakeX = acceleration.x; //y轴加速度 curShakeY = acceleration.y; //z轴加速度 curShakeZ = acceleration.z; var speed = Math.abs(curShakeX + curShakeY + curShakeZ - lastShakeX - lastShakeY - lastShakeZ) / diffTime * 10000; if (speed > shakeThreshold) { //TODO 相关方法,比如: //播放音效 shakeAudio.play(); //播放动画 $('.shake_box').addClass('shake_box_focus'); clearTimeout(shakeTimeout); var shakeTimeout = setTimeout(function(){ $('.shake_box').removeClass('shake_box_focus'); },1000) } lastShakeX = curShakeX; lastShakeY = curShakeY; lastShakeZ = curShakeZ; } } //预加摇一摇声音 var shakeAudio = new Audio(); shakeAudio.src = 'sound/shake_sound.mp3'; var shake_options = { preload : 'auto' } for(var key in shake_options){ if(shake_options.hasOwnProperty(key) && (key in shakeAudio)){ shakeAudio[key] = shake_options[key]; } }
四、源码下载:点击下载
转自: http://www.cnblogs.com/waitingbar/p/4682215.html
相关文章推荐
- 无插件纯Web HTML5 3D机房 进阶篇(新增设备、线缆、巡查等功能)
- 10款最佳HTML5绘图工具
- 使用APICloud编写优雅的HTML5代码《二》:ajax、文件上传
- 安卓 native 和 H5 的交互
- 禁止Html5在手机上屏幕页面缩放
- HTML5结合ajax实现文件上传以及进度显示
- HTML5本地存储——IndexedDB(二:索引)
- HTML5本地存储——IndexedDB(一:基本使用)
- 眼镜h5
- HTML5 postMessage 和 onmessage API 详细应用
- html5 svn e.target cannot get correct value
- html5 audio video output
- html5手写签名
- html5 audio 自定义播放器
- html5 本地存储
- 利用HTML5的画布Canvas实现刮刮卡效果
- html5的常用标签(一)
- 使用按钮控制HTML5背景音乐开关
- HTML5音乐播放器(最新升级改造加强版)
- html5培训开发 人生一个重要的转折点