欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

移动轨迹回放

程序员文章站 2022-07-05 12:59:16
...

这两天的作业压死个人,就没空写东西了,先贴一个刚新鲜出炉还热乎的代码~

主要功能是:在页面中按下并移动鼠标,释放时,小人会按照鼠标移动轨迹运动

核心主要是按下鼠标事件 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这个小东西我可以没事划拉几下看小飞人啊哈哈~)