HTML5中使用摇一摇功能代码(来自网络,亲测有效)
if (window.DeviceMotionEvent) {
var speed = 25;
var x = t = z = lastX = lastY = lastZ = 0;
window.addEventListener('devicemotion',
function () {
var acceleration = event.accelerationIncludingGravity;
x = acceleration.x;
y = acceleration.y;
if (Math.abs(x - lastX) > speed || Math.abs(y - lastY) > speed) {
//此处摇一摇时的业务逻辑代码
};
lastX = x;
lastY = y;
}, false);
}
else {
alert('not support mobile event');
}
但是,此处有一个坑,如果页面需要引入jQuery时,并且,jQuery的引入声明在此段代码之前,那么在微信浏览器中,window.addEventListener会失效,但是也不会报错。仅仅是失效。不引入jQuery或者将jQuery的引入声明放在此段代码之后,则没有问题。
此问题目前仅在微信浏览器中发现。在其他浏览器中均正常。