鼠标点击移动元素(可关闭打开)

首先得了解

**event**里有些什么

screenX:鼠标位置相对于用户屏幕水平偏移量,而screenY也就是垂直方向的,此时的参照点也就是原点是屏幕的左上角。

clientX:跟screenX相比就是将参照点改成了浏览器内容区域的左上角

pageX:参照点也是浏览器内容区域的左上角

通过两个鼠标点击事件

onmousedown	//点击事件
onmousemove	//移动事件
onmouseup	//鼠标抬起事件

话不多说 直接上代码

var btn = document.getElementById("btn");
			
			function btnn(){
				
				btn.nextElementSibling.classList.toggle("odiv")
				onc();
				
			}
			
			function onc(){
			var box = document.getElementsByClassName("odiv")[0];
			box.onmousedown=function(v){
				var event= event || v;
				if(event.button == 0)
				{
					var x=event.pageX||event.clientX;
					var y=event.pageY||event.clientY;
					var offx=box.offsetLeft;
					var offy=box.offsetTop;
					document.onmousemove = function(ev)
					{
						var event= event || ev;
						var pax=event.pageX || event.clientX;
						var pay=event.pageY || event.clientY;
						
						box.style.left=(pax-x)+offx+"px";
						box.style.top=(pay-y)+offy+"px";
						box.style.cursor="move";
					}
				}
				
			}
			document.onmouseup=function(){
				document.onmousemove = null;
			}
			}

前端代码如下:

<head>
<style>
.odiv{
			width: 100px;
			height: 100px;
			background: red;
			position: relative;	//此类型一定得加上
}
</style>
</head>
	<body>
		<button id="btn" onclick="btnn()">打开</button>
		<div id="ww" class=""></div>
																											大佬勿喷
发布了4 篇原创文章 · 获赞 0 · 访问量 76

猜你喜欢

转载自blog.csdn.net/qq_41801219/article/details/104587080