需求:在指定位置按住鼠标左键移动对话框
分析:鼠标按下(获取鼠标在盒子中的位置)。触动事件(获取鼠标的位置),移动在更换对话框的位置(盒子在页面中的位置=鼠标的位置-鼠标在盒子中 的距离)
鼠标按下onmousedown 鼠标弹起:onmouseup 鼠标移动:onmousemove
步骤:
1.老三步和新五步
2.把鼠标的坐标赋值给对话框,禁止文本选中
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<style type="text/css">
*{
margin: 0;
padding: 0;
}
.nav{
height: 30px;
background: #036663;
border-bottom: 1px solid #369;
line-height: 30px;
padding-left: 30px;
}
.nav a{
color: #fff;
text-align: center;
font-size: 14px;
text-decoration: none;
}
.d-box{
width:400px;
height: 300px;
border:2px solid #036663;
box-shadow: 2px 2px 2px 2px #666;
position: absolute;
top: 40%;
left: 40%;
}
.hd{
width: 100%;
height: 25px;
background-color: #036663;
border-bottom: 1px solid #369;
line-height: 25px;
color: white;
cursor: move;
}
#box_close{
float: right;
cursor:pointer;
}
</style>
</head>
<body>
<!-- 顶部注册部分,无用 -->
<div class="nav">
<a href="#" id="register">注册信息</a>
</div>
<!-- 我们移动的对话框 -->
<div class="d-box" id="d_box">
<div class="hd" id="drop">
<i>注册信息(可拖拽)</i>
<span id="box_close">【关闭】</span>
</div>
<div class="bd"></div>
</div>
<script type="text/javascript">
window.onload = function(){
//需求:在指定位置按住鼠标左键移动对话框
//分析:鼠标按下。触动事件,移动在更换对话框的位置
//鼠标按下onmousedown 鼠标弹起:onmouseup 鼠标移动:onmousemove
//步骤:
//1.老三步和新五步
//2.把鼠标的坐标赋值给对话框
//1.老三步和新五步
var box = document.getElementById("d_box");
var drop = document.getElementById("drop");
//鼠标按下,再移动对话框
drop.onmousedown = function(event){
//先获取鼠标在盒子中的位置,在将来移动的时候减去,以保证鼠标在盒子中的位置
event = event || window.event;//兼容获取的事件对象
var pagex = event.pageX || scroll().left + event.clientX;//鼠标的位置
var pagey = event.pageY || scroll().top + event.clientY;
var mousedivx = pagex - box.offsetLeft;//鼠标在盒子中的位置
var mousedivy = pagey - box.offsetTop;
document.onmousemove = function(event){
event = event || window.event;
//鼠标的位置
var mousex = event.pageX || scroll().left + event.clientX;
var mousey = event.pageY || scroll().top + event.clientY;
//二次处理鼠标的位置
mousex = mousex -mousedivx;
mousey = mousey - mousedivy;
//给box赋值
box.style.left = mousex +"px";
box.style.top = mousey +"px";
//禁止选中文本框
window.getSelection?window.getSelection().removeAllRanges():document.selection().empty();
}
}
//鼠标松开,解绑事件
drop.onmouseup = function(){
document.onmousemove = null;
}
}
</script>
</body>
</html>