1. 程式人生 > >javascript---之自由落體運動實現

javascript---之自由落體運動實現

實現自由落體運動需要理解的幾個簡單屬性:

clientHeight:瀏覽器客戶端整體高度

offsetHeight:物件(比如div)的高度

offsetTop:物件離客戶端最頂端的距離

簡單demo如下:

<!doctype html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>free_movement</title>
	<style type="text/css">
		#div1{
			position: absolute;
			height: 100px;
			width: 100px;
			background: red;
		}
	</style>
	<script type="text/javascript">
		window.onload=function  () {
			var btn=document.getElementById('btn');
			var div1=document.getElementById('div1');

			var Time=null;
			var speed=0;
			btn.onclick=function () {
				startMove();
			}

			function startMove () {
				clearInterval(Time);
				Time=setInterval(function(){
					speed+= 3;
					var T = div1.offsetTop + speed;
					if(T > document.documentElement.clientHeight - div1.offsetHeight){
						T = document.documentElement.clientHeight - div1.offsetHeight;
						speed *= -1;
						speed *= 0.75;
					}
					div1.style.top=T+'px';
				}, 30)
			}
		}
	</script>
</head>
<body>
	<input type='button' value='開始運動' id="btn">
	<div id="div1"></div>
</body>
</html>

注:clearTnterval(Time)://防止多次點選事件的產生