前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >js拖拽

js拖拽

作者头像
贵哥的编程之路
发布2020-10-30 10:38:06
4.5K0
发布2020-10-30 10:38:06
举报

/*js拖拽逻辑: 第一:为什么要定位? 因为

在这里插入图片描述
在这里插入图片描述

往左往上left top要定位的哈 第二:为什么点击down包括着移动move与抬起up. 因为代表这三个是不独立的. 第三:为什么down是div.move与up是document. 因为鼠标移动是在document移动,点击是在div上点击.其实一句话,鼠标移动div跟着移动而已. */ 核心代码:

在这里插入图片描述
在这里插入图片描述

代表着鼠标到可视区-div到可视区===div到可视区.

在这里插入图片描述
在这里插入图片描述

代表了***移动后的***的鼠标到可视区的----div到鼠标的距离. 这里面可能有点难理解,我举个例子把好吧.比如我点击时的位置是x=100 鼠标=150,y=100 鼠标=150.move后的位置是x=350 鼠标400,y=350. 鼠标是400.那样的话,400-(150-100)=350.就是div所在的位置.也就是move后的位置.

js拖拽:
<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
	<title>Document</title>
	<style type="text/css">
		*{padding: 0px;margin: 0px;list-style: none;}
		#div
		{
			width: 100px;
			height:100px;
			background: red;
			position: absolute;
		}
	</style>
</head>
<body>
	<div id="div"></div>
	<script type="text/javascript">
		div.onmousedown=function(cyg)
		{
			var ev=cyg||event;
			var l=ev.clientX-div.offsetLeft;
			var t=ev.clientY-div.offsetTop;
			document.onmousemove=function(liwen)
			{
				var ev=liwen||event;
				div.style.left=ev.clientX-l+"px";
				div.style.top=ev.clientY-t+"px";
			}
			document.onmouseup=function()
			{
				document.onmousemove=null;
				document.onmouseup=null;
			};
			return false;
		}
	</script>
</body>
</html>

效果图:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-10-28 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档