js摇一摇
用javascript实现手机摇一摇
if(navigator.userAgent.indexOf('iPhone')>-1)
{
var SHAKE_THRESHOLD =2000;
}
else
{
if(navigator.userAgent.indexOf('QQ')>-1)
{
var SHAKE_THRESHOLD =1000;
}
else
{
var SHAKE_THRESHOLD =4000;
}
}
根据手机反应的不同SHAKE_THRESHOLD值可以设置为不同的值
var last_update = 0;
var x, y, z, last_x=0, last_y=0, last_z=0;
function deviceMotionHandler(eventData) {
var acceleration =eventData.accelerationIncludingGravity;
var curTime = new Date().getTime();
if ((curTime - last_update)> 100) {
var diffTime = parseInt(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) {
alert('摇一摇');
}
last_x = x;
last_y = y;
last_z = z;
}
}
if (window.DeviceMotionEvent) {
window.addEventListener('devicemotion',deviceMotionHandler, false);
}