javascript H 5揺り動かす事件



<script type="text/javascript">
	//      
	if (window.DeviceMotionEvent) { //   
		window.addEventListener('devicemotion', deviceMotionHandler, false);
	}
	var vibrateSupport = "vibrate" in navigator; //    
	if (vibrateSupport) { //        
		navigator.vibrate = navigator.vibrate || navigator.webkitVibrate || navigator.mozVibrate || navigator.msVibrate;
	}

	//       
	//           x, y, z              ,              。
	//            ,                 。
	var SHAKE_THRESHOLD = 5000;
	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) {

				navigator.vibrate(1000); //           ios

				alert("    !"); // Do something

			}
			last_x = x;
			last_y = y;
			last_z = z;
		}
	}
</script>