移动端摇一摇
来源:互联网 发布:网络php程序员 编辑:程序博客网 时间:2024/05/21 17:08
看到移动端实现摇一摇并振动功能,觉得挺实用便记录了下来。
这个功能主要通过window.DeviceMotionEvent该事件可以监听设备的运动事件,然后通过event.accelerationIncludingGravity获取的x,y,z的位移,通过位置的变化计算设备是否在快速变化加速度以达到监听设备是否在摇一摇的效果,最后利用navigator.vibrate(s)调用触屏手机的震动功能。
整理的代码:
- var shake = (function(){
- var speed = 25; //摇一摇速度的临界值
- var x = y = z = lastX = lastY = lastZ = 0;
- var isShaking = false; //是否在动画中
- return function init(callback){
- if(window.DeviceMotionEvent){
- window.addEventListener('devicemotion', function(){deviceMotionHandler(callback);}, false)
- }else{
- alert("not support mobile motion event");
- }
- }
- function deviceMotionHandler(callback){
- /*获取x,y,z方向的即时速度*/
- var acceleration = event.accelerationIncludingGravity;
- x = acceleration.x;y = acceleration.y;z = acceleration.z;
- if(Math.abs(x-lastX) > speed || Math.abs(y-lastY) > speed || Math.abs(z-lastZ) > speed){
- if(!isShaking){
- //手机震动一秒
- if (navigator.vibrate) {
- navigator.vibrate(1000);
- }else if (navigator.webkitVibrate) {
- navigator.webkitVibrate(1000);
- }
- isShaking = true;
- setTimeout(function(){
- callback();
- isShaking = false;
- },2000);
- }
- }
- lastX = x;lastY = y;lastZ = z;
- }
- }());
- new shake(function(){
- alert("您中奖了!");
- });
0 0
- 移动端摇一摇
- 移动
- 移动
- 移动
- 移动
- 移动
- 移动
- 移动
- 移动
- 移动
- 移动GPU 移动CPU
- 广东移动:深圳移动
- 基于Unity3D的移动端摇一摇功能的实现
- 移动数据
- 移动术语
- 移动硬盘盒!
- 移动机器人
- 移动商务
- office2016永久免费激活码(office2016密钥)
- Android 倒计时CountDownTimer使用
- 【Java】Swing 图形界面实现验证码(验证码可动态刷新)
- 解决Android 5.0以上版本Button自带阴影效果的方法
- 虚拟货币开发专题(ubuntu下如何编译钱包)
- 移动端摇一摇
- 移动端 webapp meta小结
- 京东2016招聘笔试(抛小球)
- centos7 docker build dockerfile jdk8 tomcat8 阿里云docker
- 双向单链表的实现
- 一个简单实用的Android调试应用技巧
- centos安装FastDFS+Nginx
- HashMap的工作原理----面试
- dbca删除数据库不可选