h5判断手机摇晃

前言:有时移动端需要用到摇晃的判断,总结一下,android和ios通用。

代码如下:

var count = 0;
function
shakeFun(){ //判断手机摇晃 if(window.DeviceMotionEvent) { var speed = 10; var x = y = 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) { count++; if(count == 1 ){ //避免摇晃中多次触发事件 function shake(){ //摇晃时展示的动效 $(".center_phone").css("transform","rotate(16deg)"); setTimeout(function(){ $(".center_phone").css("transform","rotate(-16deg)"); },200); var audio = document.getElementById('audio');//获取audio元素 audio.play(); }; var timer = setInterval(shake,500);//每隔1秒执行一次 setTimeout(function(){ clearInterval(timer); },3000); setTimeout(function(){ //摇晃后触发事件
              count = 0; showDia(); //摇晃后的结果展示 },
4000); } } lastX = x; lastY = y; }, false); } };

 

posted @ 2022-11-23 10:49  阳光下的向日葵  阅读(97)  评论(0编辑  收藏  举报