JavaScript 摇一摇

 1 function handleMotionEvent() {
 2   const speed = 4500;
 3   let count = 0;
 4   let startTime = new Date().getTime();
 5   let startAcceleration = {
 6     x: 0,
 7     y: 0,
 8     z: 0,
 9   };
10 
11   const handle = function(DeviceMotionEvent) {
12     const endTime = new Date().getTime();
13     const endAcceleration = DeviceMotionEvent.accelerationIncludingGravity;
14     const time = endTime - startTime;
15 
16     if (time > 100) {
17       const distance = Math.sqrt(
18         Math.pow(endAcceleration.x - startAcceleration.x, 2) +
19           Math.pow(endAcceleration.y - startAcceleration.y, 2) +
20           Math.pow(endAcceleration.z - startAcceleration.z, 2)
21       );
22       startTime = endTime;
23       // console.log('Speed: ', Math.round((distance / time) * 10000));
24       if ((distance / time) * 10000 > speed) {
25         console.log('【Times】', count++);
26       }
27       startAcceleration = endAcceleration;
28     }
29     // window.removeEventListener('devicemotion', handle, false);
30   };
31 
32   return handle;
33 }
34 
35 if (window.DeviceOrientationEvent) {
36   const handle = handleMotionEvent();
37   window.addEventListener('devicemotion', handle, false);
38 }

 

posted @ 2020-06-11 11:07  xlsdg  阅读(119)  评论(0)    收藏  举报