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 }