一文教你如何用JS代码来操作元素拖拽移动的效果

article/2025/9/19 21:33:36

目录

      • 一、先看要执行后的效果
      • 二、看完效果后,来捋一下我们要执行效果都有哪些?
        • 1. 要获取元素节点的信息
        • 2. 需要对该元素进行鼠标按下事件
        • 3. 还需要鼠标移入事件与在该元素的按下事件配合实现拖拽效果
        • 4. 最后在鼠标在该元素内抬起的同时对鼠标移入事件进行解绑
      • 三、根据目录二来编写代码过程
        • 1. 获取元素节点的信息
        • 2. 对该元素进行鼠标按下事件绑定
        • 3.配合鼠标移入事件实现拖拽效果
        • 4. 所以我们要鼠标在该元素内抬起的同时对鼠标移入事件进行解绑

一、先看要执行后的效果

请添加图片描述

可以看到,我把一个元素在当前浏览器框内拖拽并且元素随着鼠标的拖拽而移动

二、看完效果后,来捋一下我们要执行效果都有哪些?

1. 要获取元素节点的信息

2. 需要对该元素进行鼠标按下事件

3. 还需要鼠标移入事件与在该元素的按下事件配合实现拖拽效果

4. 最后在鼠标在该元素内抬起的同时对鼠标移入事件进行解绑

三、根据目录二来编写代码过程

1. 获取元素节点的信息

<body><div id="div1"></div><script>//获取要对谁实现效果的元素节点var done=document.getElementById('div1');</script>
</body>

2. 对该元素进行鼠标按下事件绑定

done.onmousedown = function(e){//e 代表事件触发是鼠标与绑定元素之间的信息//获取鼠标按下时获取鼠标到绑定元素的X轴坐标和Y轴坐标//后续代码中如果对其进行拖拽则需要减去鼠标在该元素内的X和Y轴坐标//否则进行赋值时鼠标在该元素内的坐标就会为0var oleft = e.offsetX;var otop = e.offsetY;
}

3.配合鼠标移入事件实现拖拽效果


//需要将该事件放在上一个鼠标在该元素内按下的事件的里面
//鼠标需要通过按下和移入事件的配合来实现拖拽效果
document.onmousemove = function(e){//这个地方的 e 为鼠标移入事件触发时鼠标与整个浏览器页面之间的信息//还需要获取鼠标在浏览器页面移动是的X和Y的坐标//同时需要保留鼠标在该元素内的X和Y轴坐标//所以需要将鼠标在整个浏览器页面的X和Y轴的坐标减去鼠标在元素内的X和Y轴坐标var left = e.clientX-oleft  ;var top = e.clientY-otop ;//通过获取的坐标修改div的位置//然后将当前鼠标移动时的坐标赋值给当前done元素从而来实现效果//这里一定要对该元素的赋值拼接一个字符串'px'//因为获取的X和Y轴的坐标都是Number数据类型还没有px单位done.style.left = left + "px";done.style.top = top + "px";
}

当前已经写了的代码如下

done.onmousedown = function(e){var oleft = e.offsetX;var otop = e.offsetY;console.log(oleft)console.log(otop)//鼠标需要通过按下和移入事件的配合来实现拖拽效果document.onmousemove = function(e){//获取鼠标坐标//还需要获取鼠标在浏览器页面移动是的X和Y的坐标var left = e.clientX ;var top = e.clientY ;//通过获取的坐标修改div的位置//然后将当前鼠标移动时的坐标赋值给当前div1元素从而来实现效果done.style.left = left + "px";done.style.top = top + "px";}
}

其实这里已经有基本效果了

带大家看一下效果
请添加图片描述
但是在你鼠标抬起时不进行拖拽了这个元素还是会跟着鼠标移动

4. 所以我们要鼠标在该元素内抬起的同时对鼠标移入事件进行解绑

// 为元素绑定鼠标抬起事件
//最后在鼠标在该元素内抬起时进行鼠标在浏览器内移动事件进行解绑
done.onmouseup = function(){
//在鼠标在该元素内抬起的时候把鼠标在整个浏览器中进行移入的效果置空解绑
//停止操作document.onmousemove = null;
}

最后效果就成了
请添加图片描述

拜拜各位,下次再见


http://chatgpt.dhexx.cn/article/GKPCSxQw.shtml

相关文章

JS移动DOM节点,将某节点下所有子节点移动(剪切)到另一个节点下。新手很容易踩的坑!

JS移动DOM节点&#xff0c;将某节点下所有子节点移动&#xff08;剪切&#xff09;到另一个节点下。新手很容易踩的坑&#xff01; 题目(新手练习题)BUG第一种错误第二种错误 解决方案第一种解决方案&#xff08;无循环&#xff09;第二种解决方案第三种解决方案&#xff08;推…

解决最新的Chrome 7 不再支持CRX手动安装方法

从2018年6月13日起,谷歌最新的Chrome 7 不再支持CRX手动安装方法.这样导至国内用户无法顺利安装Chrome扩展&#xff0c;又无法访问Chrome应用商店.这里提供了源码安装方式&#xff1a; 1.把下载的插件包尾缀为 .crx 更改为 .zip 用解压工具解压 2.打开你的Chrome浏览器的 更…

google chrome

麦殼兒 让互联网回归初心 734590632qq.com邀你一起畅享麦殼兒极速体验 注册时输入如下邀请码&#xff0c;即可升格为VIP会员&#xff1a; WsyOuk-6BARChoy0 安装, 使用说明 点击这里下载插件(此链接仅在不能登录Google Chrome Store时使用) 第一步: 下载插件 详细图文说明 第二…

Chrome 设置黑色模式

通过 Chrome 设置更新黑色模式 版本&#xff1a;Google Chrome7 更新 Chrome 浏览器到 78 以上版本在网址栏输入 Chrome 黑色模式指令&#xff1a; chrome://flags/#enable-force-dark&#xff0c; 点击 Enter 键后就进入 黑色模式配置页&#xff1a; 将 Force Dark Mode for…

软件-浏览器-GoogleChrome:Google Chrome

ylbtech-软件-浏览器-GoogleChrome&#xff1a;Google Chrome Google Chrome 是一款由Google公司开发的网页浏览器&#xff0c;该浏览器基于其他 开源软件撰写&#xff0c;包括 WebKit&#xff0c;目标是 提升稳定性、速度和安全性&#xff0c; 并创造出简单且有效率的使用者界…

CentOS 7下安装Google Chrome浏览器

在 Linux 下安装Google Chrome浏览器是标配之一&#xff0c;CentOS 7 系统自带是 Firefox 浏览器&#xff0c;虽然也很优秀&#xff0c;但是平时 Chrome 用习惯了&#xff0c;而且还有很多标签&#xff0c;我希望同步回来&#xff0c;所以安装一个 Google Chrome 浏览器是必须的…

chromium 16 chromium 登陆 google 账号

01 自己编译的 chromium 登陆google账号问题 自己编译的chromium&#xff0c;如果编译的时候&#xff0c;没有提供google key&#xff0c;也没有需改账号体系内容相关代码时&#xff0c;登陆google账号会失败。提示[抱歉&#xff0c;出了点问题。请重试]。如下图: 02 申请 g…

html5设置谷歌浏览器兼容性,google浏览器

google浏览器作为现阶段最实用的搜索工具之一&#xff0c;其中就包括拥有众多功能的存在&#xff0c;例如兼容模式&#xff0c;而兼容模式用的是ie的Trident内核&#xff0c;对此许多用户可能还不是很明白兼容模式的设置&#xff0c;那么 chrome浏览器64位本下载v80.0.3987.122…

谷歌chromeos_谷歌浏览器 79.0.3945.79 正式版

Chrome浏览器追求的是全方位的快速体验&#xff0c;它不仅能飞快地从桌面上启动&#xff0c;而且能瞬间完成网页加载&#xff0c;还能以闪电般的速度运行网络应用。Chrome浏览器整洁且直观&#xff0c;您可在同一位置进行搜索和导航&#xff0c;可随意排列标签页&#xff0c;既…

Chrome version must be 70 and 73

说两个问题 1、 selenium.common.exceptions.WebDriverException: Message: chromedriver executable needs to be in PAT 原因没有找到webdriver运行程序,路径不对或者根本就没有下载 下载地址:https://sites.google.com/a/chromium.org/chromedriver/downloads 2、Chro…

谷歌浏览器 Google Chrome v74.0.3729.131 正式版

Chrome 浏览器追求的是全方位的快速体验&#xff0c;它不仅能飞快地从桌面上启动&#xff0c;而且能瞬间完成网页加载&#xff0c;还能以闪电般的速度运行网络应用。Chrome 浏览器整洁且直观&#xff0c;您可在同一位置进行搜索和导航&#xff0c;可随意排列标签页&#xff0c;…

chrome浏览器

http://blog.csdn.net/pipisorry/article/details/37728839 谷歌浏览器相关设置 谷歌浏览器双击标签关闭 1. 安装拓展程序Chrome Toolbox(chrome已不支持) 2. 鼠标中键单击标签 谷歌浏览器点击书签在新标签页打开 1. 安装拓展程序&#xff1a; chrookmarks \ Bookmarks l…

CentOS7 安装Chrome

目录 1、权限 2、下载 3、安装依赖包 4、安装Chrome 5、打开Chrome 1、权限 若不是root权限&#xff0c;需要在root下执行为用户授权命令&#xff0c;我直接使用root登录 [rootlocalhost src]# usermod -g root login_name 注&#xff1a;login_name替换成自己的登录名 …

Win7系统安装哪个版本的Chrome浏览器

Win系统安装Chrome浏览器 Win7系统环境&#xff0c;安装Chrome应该尽量考虑2021年发布的浏览器版本。理由如下&#xff1a; Win7版Chrome“续命”到2022年 延长支持6个月&#xff1a;Win7版Chrome“续命”到2022年 90版本Chrome支持Win7系统 Chrome90安装包及chromedriver驱…

Chromatix 7 使用<2>

Edit region triggers Utilties->Parameter Editor 可以修改triggers 的值 和添加regions Add scenarios Edit-> Edit project scenarios 主要包含&#xff1a;sensor 、usecase、feature、scene 场景结构如下&#xff1a; sensor0 拍照可以继承preview的场景 sensor1…

谷歌浏览器

引言&#xff1a;众所周知&#xff0c;一个好的浏览器可以提高我们的工作效率&#xff0c;那么今天教大家如何安装超 nice 的浏览器 —— 谷歌浏览器 文章目录 一、安装谷歌浏览器二、修改谷歌浏览器搜索引擎三、修改谷歌浏览器默认下载位置 一、安装谷歌浏览器 打开&#x1f…

邮箱怎么申请注册?如何申请个人邮箱?

邮箱作为现代互联网沟通工具&#xff0c;因其便捷性和稳定性&#xff0c;深受广大用户喜爱。 最近&#xff0c;很多朋友问小编邮箱怎么注册&#xff0c;如何申请个人邮箱。下面&#xff0c;小编以TOM VIP邮箱为例&#xff0c;为大家分享一下步骤吧~ 打开官网&#xff0c;选择…

Outlook邮箱注册详解教程

步骤一&#xff1a;百度搜索outlook邮箱即可&#xff0c;排第一的网站就是outlook邮箱登陆地址了&#xff08;见图一&#xff09;&#xff1b; 图一 步骤二&#xff1a;进入Outlook邮箱的官网后&#xff0c;找到创建免费账户&#xff08;见图二&#xff09;&#xff1b; 图二 步…

gmail邮箱

楔子 google邮箱 可以使用 QQ邮箱手机版注册google邮箱 使用网易邮箱大师可以登录 http://www.jb51.net/softjc/249157.html

邮箱注册

邮箱注册 流程图 javaMail简介 Sun定义的一套接收、发送电子邮件的API 支持各种邮件协议&#xff0c;开发人员无需考虑底层通信细节被作为Java EE的一部分&#xff0c;但没有被加入标准JDK中需要获取jar包 <dependency><groupId>javax.mail</groupId><…