1. 程式人生 > >移動軌跡回放

移動軌跡回放

這兩天的作業壓死個人,就沒空寫東西了,先貼一個剛新鮮出爐還熱乎的程式碼~

主要功能是:在頁面中按下並移動滑鼠,釋放時,小人會按照滑鼠移動軌跡運動

核心主要是按下滑鼠事件 onmousedown , 滑鼠滑動事件 onmousemove , 滑鼠鬆開後 onmouseup;

除此之外很重要的一點是需要記錄滑鼠的座標,以便小飛人可以按照記錄的軌跡回放

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<style type="text/css">
			img{
				position: absolute;
			}
		</style>
	</head>
	<body>
		<input type="button" value="根據移動軌跡移動" />
		<p>點選按鈕啟用功能</p>
		<img src="img/1.gif"/>
		<script type="text/javascript">
			var aInput = document.getElementsByTagName("input")[0];
			var oP = document.getElementsByTagName("p")[0];
			var oImg = document.getElementsByTagName("img")[0];
			aInput.onmousedown = function(e){
				oP.innerHTML = "功能已啟用";
				var evt = e || event;
				evt.stopPropagation();		//阻止事件冒泡到父元素,阻止任何父事件處理程式被執行
				document.onmousedown = function(e){
					var arr = [];
					var evt = e || event;
					var x = evt.clientX;
					var y = evt.clientY;
					arr.push({posX:x,posY:y});
					document.onmousemove = function(e){
						var evt = e || event;
						arr.push({posX:evt.clientX,posY:evt.clientY});
						//console.log(arr);
						return false;
					}
					document.onmouseup = function(){
						var time = setInterval(function(){
							oImg.style.left = arr[0].posX + "px";
							oImg.style.top = arr[0].posY + "px";
							arr.shift();
							if(arr.length == 0){
							clearInterval(time);
							}
						},50)
						
						document.onmouseup = null;
						document.onmousemove = null;
					}
				}
			}
		</script>
	</body>
</html>

貼出來的程式碼顏色都沒有變化的,(emmm這個小東西我可以沒事劃拉幾下看小飛人啊哈哈~)