接第七期两个练习补充 div随着鼠标移动,div根据键盘按键移动

一、鼠标拖拽方块

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>Div跟随鼠标移动</title>
		<style type="text/css">
		#box1{
			width: 200px;
			height: 200px;
		    background-color: darksalmon;
			border: #000000 solid 2px;
		    text-align: center;
			line-height: 200px;
			position: absolute;//开启定位
		}
		#box2{
			width: 500px;
			height: 500px;
			background-color: cadetblue;
			text-align: center;
			line-height: 500px;
			font-size:50px;
	
		}
		</style>
		<script type="text/javascript">
		window.onload=function(){
		/* 
		 实现DIV跟着鼠标移动
		 */	
		var box1=document.getElementById("box1"); 
		document.onmousemove=function(event){
			//获取鼠标的坐标
			var left=event.pageX;
			var top=event.pageY;
			//设置DIV的偏移量,设置position才能用
			box1.style.left=left+"px";
			box1.style.top=top+"px";
			
		};
		/* 设置了这个则box1在跟随鼠标移动时不会移动进box2 */
		var box2=document.getElementById("box2");
		box2.onmousemove=function(event){
		 	event.cancelBubble=true;
		};
		};
		
		</script>
	</head>
	<body>
		<div id="box1" >鼠标大哥!我跟你走!</div>
		<div id="box2">你不要过来啊!</div>
			
	</body>
</html>

二、盒子根据键盘的上下左右按钮移动

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style type="text/css">
		#box1{
			width: 600px;
			height: 600px;
			border: #000000 solid 1px;
			background-image: url(img/4.jpg);
			position: absolute;
		}
		</style>
		<script type="text/javascript">
		/* 
		使div可以根据不同的方向键向不同的方向移动 
		37 左 38上 39右 40下
		 */
		 window.onload=function(){
			 document.onkeydown=function(event){
				 event=event||window.event;
				 //定义变量表示速度
				 var spead=20;
				 //当用户按了ctrl时速度加快
				 if(event.ctrlKey){
					 spead=100;
				 }
				 switch(event.keyCode){
					 case 37:
					 box1.style.left=box1.offsetLeft-spead+"px";
					 break;
					 case 38:
					  box1.style.top=box1.offsetTop-spead+"px";
					 break;
					 case 39:
					  box1.style.left=box1.offsetLeft+spead+"px";
					 break;
					 case 40:
					 box1.style.top=box1.offsetTop+spead+"px";
					 break;
				 }
			 };
		 };
		</script>
	</head>
	<body>
		<div id="box1"></div>
	</body>
</html>

以上两个小练习运用的均是前几期的知识,若有疑问可以回顾前几期知识点

JS笔记第七期(事件、事件传播、拖拽、滚轮事件、键盘事件)+图片切换练习-CSDN博客

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以通过监听鼠标移动事件来实现改变div移动。具体方式如下: 1. 获取待移动div元素,并设置其初始位置。 2. 监听鼠标移动事件,获取鼠标相对于文档的坐标,计算出待移动div元素应该移动到的位置。 3. 使用CSS3的transform属性来改变div元素的位置,实现平滑的移动效果。 下面是一个简单的实现示例: ```html <!DOCTYPE html> <html> <head> <title>Move Div with Mouse</title> <style> #moveDiv { position: absolute; top: 100px; left: 100px; width: 100px; height: 100px; background-color: red; transition: transform 0.2s ease-out; } </style> </head> <body> <div id="moveDiv"></div> <script> var moveDiv = document.getElementById('moveDiv'); var startX, startY, offsetX, offsetY; moveDiv.addEventListener('mousedown', function(event) { startX = event.pageX; startY = event.pageY; offsetX = moveDiv.offsetLeft; offsetY = moveDiv.offsetTop; document.addEventListener('mousemove', moveHandler); }); document.addEventListener('mouseup', function(event) { document.removeEventListener('mousemove', moveHandler); }); function moveHandler(event) { var moveX = event.pageX - startX; var moveY = event.pageY - startY; moveDiv.style.transform = 'translate(' + (offsetX + moveX) + 'px, ' + (offsetY + moveY) + 'px)'; } </script> </body> </html> ``` 这个示例中,我们监听了moveDiv元素的mousedown事件,并在事件处理函数中记录了鼠标点击时的坐标和div元素的初始位置。然后,我们在document上监听了mousemove和mouseup事件,分别在mousemove事件处理函数中计算出鼠标相对于初始位置的偏移量,并使用translate()函数来改变div元素的位置。mouseup事件处理函数用于取消mousemove事件的监听。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值