1. 程式人生 > >JS實現手機搖一搖功能

JS實現手機搖一搖功能

定時 clu 信息 handler avi oos one event threshold

//運動事件監聽
  if (window.DeviceMotionEvent) {
      window.addEventListener(‘devicemotion‘,deviceMotionHandler,false);
  }
  
  //獲取加速度信息
  //通過監聽上一步獲取到的x, y, z 值在一定時間範圍內的變化率,進行設備是否有進行晃動的判斷。
  //而為了防止正常移動的誤判,需要給該變化率設置一個合適的臨界值。
  var SHAKE_THRESHOLD = 4000;
 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)> 10) {
             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("你中獎啦!");*/  // Do something
				openZoosUrl();
             }
             last_x = x;
             last_y = y;
             last_z = z;
         }
 }

JS實現手機搖一搖功能