鼠标拖拽解决与对象相对位置不变

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	<style type="text/css">
		#box1{
			width:100px;
			height: 100px;
			background-color: gray;
			position: absolute;
			
		}
		#box2{
			width:100px;
			height: 100px;
			left:200px;
			background-color: green;
			position: absolute;
			
		}
	</style>
	<script type="text/javascript">
		window.onload=function(){
			
			/*
			 * 拖拽box1元素
			 * -拖拽流程
			 * 	1.鼠标按下,开始拖 onmousedown
			 * 	2.鼠标移动,跟随移动onmousemove
			 * 	3.当鼠标松开,被拖拽元素固定在当前位置onmouseup
			 */
			 var box1=document.getElementById("box1")
			 box1.onmousedown=function(event){
			 	event=event||window.event
			 	//鼠标与对像相对位置不变
			 	var ol=event.clientX-box1.offsetLeft
			 	var ot =event.clientY-box1.offsetTop
			 	document.onmousemove=function(event){
			 		event=event||window.event
			 		var x=event.clientX;
			 		var y=event.clientY;
			 		//box1的位置
			 		box1.style.left=event.clientX+"px"-ol
			 		box1.style.top=event.clientY+"px"-ot
			 		console.log(box1.style.left)
			 		
			 	}
			 }
			 document.onmouseup=function(){
			 	//当鼠标松开,元素固定在当前位置
			 	//取消document。onmousemove=null
			 	/*
			 	 * 兄弟元素会出现问题,当在鼠标兄弟元素时,触发兄第元素的mouseup
			 	 * 因此这里松手按钮要给整个页面,这样子无论在哪里松手都会停,但
			 	 * 如果完全重合就无法在脱出
			 	 */
			 	document.onmousemove=null;
			 	document.onmouseup=null;
			 }
			 //拖拽事件相对位置调整
		}
	</script>
	<body>
		<div id="box1"></div>
		<div id="box2"></div>
	</body>
</html>

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

优价实习

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值