重力加速度和摇一摇事件

devicemotion是移动端的设备运动事件,是window的事件
event.accelerationIncludingGravity就是设备运动的重力加速度

window.addEventListener("devicemotion",function(event){
    var acceleration=event.accelerationIncludingGravity;
    var x=acceleration.x; //x方向的加速度
    var y=acceleration.y; //y方向的加速度
    var z=acceleration.z; //z方向的加速度
},false);

需要注意的是,x,y,z在安卓和iOS上的值是相反的
可以利用重力加速度做一下体感小游戏
下面是利用重力加速度封装的摇一摇事件

function onshake(fn){
    var lastX=lastY=lastZ=0;
    var speed=50;
    window.addEventListener("devicemotion",fnshake,false);
    function fnshake(e){
        var a=e.accelerationIncludingGravity;
        var x=a.x;
        var y=a.y;
        var z=a.z;
        var dis=Math.abs(x-lastX)+Math.abs(y-lastY)+Math.abs(z-lastZ);
        if(dis>speed){
            fn&&fn();
            //当晃动幅度的值大于speed的时候触发
        };
        lastX=x;
        lastY=y;
        lastZ=z;
    };
};

调用方法

onshake(function(){
    alert("摇一摇");
});
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值