首页 > 其他分享 >JS 鼠标拖拽元素移动

JS 鼠标拖拽元素移动

时间:2023-12-30 12:44:06浏览次数:33  
标签:鼠标 h1 100px JS wrap w1 var 拖拽

代码示例

<!DOCTYPE html>
<html lang="zh-CN">

<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<style>
		#wrap {
			width: 100px;
			height: 100px;
			background-color: green;
			position: absolute;
			left: 100px;
			top: 100px;
			z-index: 100;
		}
	</style>
</head>

<body>
	<div id="wrap"></div>
</body>
<script>
	//鼠标拖拽移动
	//1.为div绑定鼠标事件
	//2.将鼠标坐标点与div定位位置进行关联
	wrap.onmousedown = function (e) {
		console.log(e);
		var e = e || window.event;
		//获取按下的位置
		var w = e.clientX;
		var h = e.clientY;
		console.log('获取按下的位置', 'clientX', w, 'clientY', h);
		//获得是鼠标按下时相对于元素的位置
		var ex = w - wrap.offsetLeft;
		var ey = h - wrap.offsetTop;

		document.onmousemove = function (h) {
			var h = h || window.event;
			var w1 = h.clientX;
			var h1 = h.clientY;
			console.log('onmousemove', 'w1', w1, 'h1', h1);
			wrap.style.left = (w1 - ex) + "px";
			wrap.style.top = (h1 - ey) + "px";

		}
	}

	wrap.onmouseup = function () {
		document.onmousemove = null;
	}
</script>

</html>

效果预览

原文链接

JS 鼠标拖拽元素移动

标签:鼠标,h1,100px,JS,wrap,w1,var,拖拽
From: https://www.cnblogs.com/LiangSenCheng/p/17936254.html

相关文章

  • nodejs多线程-共享内容
    前言:昨天遇到基于Nodejs启动多线程,以便不同服务之间可以调用(共享内存) worker_threadsnode官方文档注明了:worker_threads模块允许使用并行地执行JavaScript的线程。与child_process或cluster不同,worker_threads可以共享内存。它们通过传输ArrayBuffer实例或共享Sh......
  • 在 Django 中使用 Vue.js 组件的步骤如下³⁴: 1. **安装 Vue.js**:首先,你需要在你的开
    在Django中使用Vue.js组件的步骤如下³⁴:1.**安装Vue.js**:首先,你需要在你的开发环境中安装Vue.js³。2.**创建Vue组件**:在Vue.js中,你可以创建一个新的Vue组件。例如,你可以在`src/components`文件夹下新建一个名为`Home.vue`的组件¹。3.**在Django模板中引......
  • ASP.NET Core 6(.NET 6) Program.cs中使用读取appsettings.json配置文件
    ​ 在ASP.NETCore6(.NET6)中,可以使用Json格式的appsettings.json配置文件来配置应用程序,用于存储应用程序的配置信息,方便我们灵活的配置应用程序。本文主要介绍Program.cs中,使用读取appsettings.json配置文件的方法,以及相关的示例代码。1、通过配置实体类的方式1)配置实体......
  • 使用Commons JXPath简化XML/JSON处理
    第1章:引言咱们都知道,在现代软件开发中,处理XML和JSON数据几乎是家常便饭。这两种格式广泛应用于配置文件、数据交换、API响应等领域。不过,要手动解析和操作它们,有时候真是让人头大。当你面对一堆复杂的XML或JSON文件时,如果有一个工具能直接帮你找到想要的数据,那该多好。JXPath正......
  • 使用Commons JXPath简化XML/JSON处理
    第1章:引言咱们都知道,在现代软件开发中,处理XML和JSON数据几乎是家常便饭。这两种格式广泛应用于配置文件、数据交换、API响应等领域。不过,要手动解析和操作它们,有时候真是让人头大。当你面对一堆复杂的XML或JSON文件时,如果有一个工具能直接帮你找到想要的数据,那该多好。JXPath正......
  • 使用Commons JXPath简化XML/JSON处理
    第1章:引言咱们都知道,在现代软件开发中,处理XML和JSON数据几乎是家常便饭。这两种格式广泛应用于配置文件、数据交换、API响应等领域。不过,要手动解析和操作它们,有时候真是让人头大。当你面对一堆复杂的XML或JSON文件时,如果有一个工具能直接帮你找到想要的数据,那该多好。JXPath正......
  • flask vue 在 pycharm中 pycharm 每次新建一个新的项目(虚拟环境) 都需要重新安装vue.
    在PyCharm中使用Flask和Vue.js,你可以按照以下步骤进行:创建一个新的项目:打开PyCharm,创建一个新的项目或者打开一个已有的项目⁴。安装Flask:在PyCharm的设置(Settings)中,选择PythonInterpreter选项,点击+号按钮,搜索flask,并点击InstallPackage按钮⁴。安装Vue.js:在......
  • 7个Js async/await高级用法
    JavaScript的异步编程已经从回调(Callback)演进到Promise,再到如今广泛使用的async/await语法。后者不仅让异步代码更加简洁,而且更贴近同步代码的逻辑与结构,大大增强了代码的可读性与可维护性。在掌握了基础用法之后,下面将介绍一些高级用法,以便充分利用async/await实现更复杂的异步......
  • 【力扣】-28. 找出字符串中第一个匹配项的下标|刷题打卡-JS
    给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串的第一个匹配项的下标(下标从0开始)。如果 needle 不是 haystack 的一部分,则返回  -1 。示例1:输入:haystack="sadbutsad",needle="sad"输出:0解释:"sad"在下标0和6处匹配。......
  • 【力扣】-39. 组合总和|刷题打卡-JS
    给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target ,找出 candidates 中可以使数字和为目标数 target 的所有 不同组合 ,并以列表形式返回。你可以按 任意顺序 返回这些组合。candidates 中的 同一个 数字可以 无限制重复被选取 。如果至少一个......