JavaScript如何实现鼠标拖拽功能详细解析?

更新于
2026-09-25 09:20:29
1阅读来源:SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计647个文字,预计阅读时间需要3分钟。

JavaScript如何实现鼠标拖拽功能详细解析?

本文将简要介绍如何实现JavaScript鼠标拖拽事件的详细代码。以下是一段实现该功能的示例代码,并附上相关CSS样式。

JavaScript 代码

javascript// 获取需要拖拽的元素var element=document.getElementById(draggable);

// 初始化拖拽功能function initDraggable() { // 鼠标按下事件 element.addEventListener(mousedown, startDrag);

// 鼠标移动事件 document.addEventListener(mousemove, drag);

// 鼠标释放事件 document.addEventListener(mouseup, endDrag);}

// 开始拖拽function startDrag(e) { // 获取鼠标初始位置 initialX=e.clientX - element.offsetLeft; initialY=e.clientY - element.offsetTop; dragging=true;}

// 拖拽中function drag(e) { if (dragging) { // 计算新的位置 element.style.left=e.clientX - initialX + px; element.style.top=e.clientY - initialY + px; }}

// 结束拖拽function endDrag() { dragging=false;}

// 初始化initDraggable();

CSS 代码

css/* 设置样式 */* { margin: 0; padding: 0;}

#draggable { width: 100px; height: 100px; background-color: red; position: absolute;}

图片示例

![拖拽元素示例](https://example.com/draggable-element.png)

JavaScript如何实现鼠标拖拽功能详细解析?

以上代码和样式将实现一个简单的鼠标拖拽功能,您可以根据需要调整元素大小和颜色。

本文实例为大家分享了js鼠标拖拽事件的详细实现代码,供大家参考,具体内容如下

图片如下:

css代码

<style> *{ margin:0; padding:0; } #box{ width: 200px; height: 200px; background: url("./img/aio.png") no-repeat; background-size: cover; position: absolute;/*定位元素 父级元素window就是初始包含块*/ top:0; left:0; } </style>

html代码

<div id="box"></div>

js代码

<script> //获取标签 var box=document.getElementById("box"); var body=document.body; var x,y;//全局作用域 //鼠标按下事件 0级 box.onmousedown=function(e) {//传入形参e var mx=e.clientX;//鼠标距离浏览器左 var my=e.clientY;//鼠标距离浏览器上 var bx=box.offsetLeft;//盒子距离浏览器左 var by=box.offsetTop;//盒子距离浏览器上 x=mx-bx;//实际盒子距离的浏览器左 y=my-by;//实际盒子距离的浏览器上 //鼠标移动事件 0级 body.onmousemove=function(e) {//拿到全局x、y、 //获取当前鼠标移动到的坐标点 var mx=e.clientX; var my=e.clientY; //盒子距离浏览器 box.style.left=mx-x +"px"; box.style.top=my-y +"px"; }; //鼠标弹起事件(松开) box.onmouseup=function(e) { body.onmousemove=null;//不做任何操作//dom0级事件解除事件绑定 //获取当前鼠标移动到的坐标点 var mx=e.clientX; var my=e.clientY; //盒子距离浏览器 box.style.left=mx-x +"px"; box.style.top=my-y +"px"; } }; </script>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持易盾网络。

本文共计647个文字,预计阅读时间需要3分钟。

JavaScript如何实现鼠标拖拽功能详细解析?

本文将简要介绍如何实现JavaScript鼠标拖拽事件的详细代码。以下是一段实现该功能的示例代码,并附上相关CSS样式。

JavaScript 代码

javascript// 获取需要拖拽的元素var element=document.getElementById(draggable);

// 初始化拖拽功能function initDraggable() { // 鼠标按下事件 element.addEventListener(mousedown, startDrag);

// 鼠标移动事件 document.addEventListener(mousemove, drag);

// 鼠标释放事件 document.addEventListener(mouseup, endDrag);}

// 开始拖拽function startDrag(e) { // 获取鼠标初始位置 initialX=e.clientX - element.offsetLeft; initialY=e.clientY - element.offsetTop; dragging=true;}

// 拖拽中function drag(e) { if (dragging) { // 计算新的位置 element.style.left=e.clientX - initialX + px; element.style.top=e.clientY - initialY + px; }}

// 结束拖拽function endDrag() { dragging=false;}

// 初始化initDraggable();

CSS 代码

css/* 设置样式 */* { margin: 0; padding: 0;}

#draggable { width: 100px; height: 100px; background-color: red; position: absolute;}

图片示例

![拖拽元素示例](https://example.com/draggable-element.png)

JavaScript如何实现鼠标拖拽功能详细解析?

以上代码和样式将实现一个简单的鼠标拖拽功能,您可以根据需要调整元素大小和颜色。

本文实例为大家分享了js鼠标拖拽事件的详细实现代码,供大家参考,具体内容如下

图片如下:

css代码

<style> *{ margin:0; padding:0; } #box{ width: 200px; height: 200px; background: url("./img/aio.png") no-repeat; background-size: cover; position: absolute;/*定位元素 父级元素window就是初始包含块*/ top:0; left:0; } </style>

html代码

<div id="box"></div>

js代码

<script> //获取标签 var box=document.getElementById("box"); var body=document.body; var x,y;//全局作用域 //鼠标按下事件 0级 box.onmousedown=function(e) {//传入形参e var mx=e.clientX;//鼠标距离浏览器左 var my=e.clientY;//鼠标距离浏览器上 var bx=box.offsetLeft;//盒子距离浏览器左 var by=box.offsetTop;//盒子距离浏览器上 x=mx-bx;//实际盒子距离的浏览器左 y=my-by;//实际盒子距离的浏览器上 //鼠标移动事件 0级 body.onmousemove=function(e) {//拿到全局x、y、 //获取当前鼠标移动到的坐标点 var mx=e.clientX; var my=e.clientY; //盒子距离浏览器 box.style.left=mx-x +"px"; box.style.top=my-y +"px"; }; //鼠标弹起事件(松开) box.onmouseup=function(e) { body.onmousemove=null;//不做任何操作//dom0级事件解除事件绑定 //获取当前鼠标移动到的坐标点 var mx=e.clientX; var my=e.clientY; //盒子距离浏览器 box.style.left=mx-x +"px"; box.style.top=my-y +"px"; } }; </script>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持易盾网络。