前几天同事要求实现摇一摇手机上传图片的功能,到网上找了些文章看了,有些代码里是有错误的,我改了下,见下面代码,在手机浏览器opera HD版本里测试可以。
var SHAKE_THRESHOLD = 3000;
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("本浏览器不支持HTML5摇一摇功能!");
}
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) {
alert("看到我就是摇了!");
}
last_x = x;
last_y = y;
last_z = z;
}
}