html5 实现手机摇一摇功能(B)
<!doctype html> <html> <head> <meta charset="UTF-8"> <title>摇晃判断</title> <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no"/> </head> <body> <div id="status">[-请晃动设备-]</div> <div class="link" style="position:fixed;bottom:20px"> <a href="demo.htm">1、 获取设备信息</a><br /> <a href="demo_1.htm">2、 摇晃判断</a><br /> <a href="demo_2.htm">3、 简易模拟微信摇一摇</a> </div> <script> var SHAKE_THRESHOLD = 800; var last_update = 0; var x = y = z = last_x = last_y = last_z = 0; if (window.DeviceMotionEvent) { window.addEventListener('devicemotion', deviceMotionHandler, false); } else { alert('本设备不支持devicemotion事件'); } 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; var status = document.getElementById("status"); if (speed > SHAKE_THRESHOLD) { var text = "x:"+x+"<br />y:"+y+"<br />z:"+z+"<br />speed:"+speed; status.innerHTML = text; } last_x = x; last_y = y; last_z = z; } } </script> </body> </html>