JavaScript 实现窗口拖拽功能完整代码示例
作者:闭包旅人时间:2026-10-21 20:38:13浏览:570
本文详细介绍如何使用 JavaScript 实现网页窗口的拖拽效果。通过监听鼠标按下、移动和松开事件,结合 CSS 绝对定位属性,完整展示了实现窗口自由拖动的核心代码逻辑与 HTML 结构,适用于前端基础功能开发参考。
JavaScript 实现窗口拖拽功能完整代码示例
实现思路与之前的水平进度条拖拽案例类似,具体代码细节如下所示。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style>
*{
margin: 0;
padding: 0;
}
.nav{
width: 100%;
height: 20px;
background-color: #ccc;
}
.popup{
width: 300px;
height: 300px;
border: 1px solid red;
position: absolute;
left: 50%;
top: 50%;
margin-left: -150px;
margin-top: -150px;
}
.popup .title{
height: 20px;
width: 100%;
background: deeppink;
cursor: move;
}
</style>
</head>
<body>
<div class="nav">注册信息</div>
<div class="popup" id="popupfather">
<div class="title" id="popupson">我是窗口标题,可拖着我走</div>
<div class="content">我是窗口内容</div>
</div>
<script>
var popupfather = document.getElementById('popupfather');
var popupson = document.getElementById('popupson');
popupson.onmousedown = function(event){
var event = event || window.event;
var that = this;
var x = event.clientX - popupfather.offsetLeft - 150; //当前鼠标点击处相对于popupfather所在位置x , -150 是处理margin值
var y = event.clientY - popupfather.offsetTop - 150; //当前鼠标点击处相对于popupfather所在位置y
document.onmousemove = function(event){
var event = event || window.event;
popupfather.style.left = event.clientX - x + "px";
popupfather.style.top = event.clientY- y + "px";
window.getSelection ? window.getSelection().removeAllRanges() : document.selection.empty();
}
}
document.onmouseup = function(){
document.onmousemove = null;
}
</script>
</body>
</html>
最终运行效果如图所示:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持本站。
作者最新文章
什么时候该用JS构造器:与工厂模式、字面量的选择对比
2026-11-05 16:18:22
推荐几款轻量级JS照片墙开源库及对比
2026-11-05 15:56:19
JavaScript递归写法有哪些常见陷阱及避免方法
2026-11-05 14:53:38
JS数组浅拷贝与深拷贝怎么选?场景与方法总结
2026-11-05 14:41:02
p5.js 中 setup() 和 draw() 函数的执行机制详解
2026-11-05 12:32:38
