首先呢
窗口移动所需要用到的主要事件 有两个
onmousedown:鼠标摁下事件
onmousemove:鼠标移动事件
结束移动 我也用了两个事件
onmouseup: 鼠标松开事件
onmouseleave:鼠标离开事件
Js代码大致就是这样
里面我自己觉得最好的地方就是
因为断层 我也不知道术语是什么 就暂时称之为断层 刚好错开了一次运行 从而简单又快捷
下图就是 拖动一次所经历的
那我就在这里把源代码给你们了
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>文本拖拽</title>
<style type="text/css">
*{
padding: 0px;
margin: 0px auto;
}
#box1 {/*宽高以屏幕大小確定*/
width: 100%;
height: 759px;
background: #54A314;
position: relative;
}
#box2 {
width: 50%;
height: 50%;
background: #3F5AF8;
position: absolute;
}
#box3 {
width: 93%;
height: 85%;
background: #ED3538;
}
</style>
</head>
<body>
<div id="box1">
第一页面
<div id="box2" style="left: 384px; top: 30px;">
第二页面
<div id="box3">
第三页面
</div>
</div>
</div>
</body>
<script>
window.onload=function(){
var formerscreenX = null;
var formerscreenY = null;
var i=0;
var box2 = document.getElementById("box2");
box2.onmousedown=function(){
console.log("鼠标已经摁下");
box2.onmousemove=function(event){
i++;//作用获得一次断层 无法计算
if(i==1){
formerscreenX = event.screenX;//记录此时的x坐标
formerscreenY = event.screenY;//记录此时的y坐标
console.log("以获取鼠标坐标");
return;
}else{
box2.style.left=parseInt(box2.style.left)+(event.screenX-formerscreenX)+"px";
box2.style.top=parseInt(box2.style.top)+(event.screenY-formerscreenY)+"px";
console.log("鼠标以摁下且正在拖动");
}
formerscreenX = event.screenX;
formerscreenY = event.screenY;
};
};
box2.onmouseup=function(){
formerscreenX = null;
formerscreenY = null;
i=0;
box2.onmousemove="";
console.log("鼠标以松开");
};
box2.onmouseleave=function(){//防止鼠标拖动过快
formerscreenX = null;
formerscreenY = null;
i=0;
box2.onmousemove="";
console.log("鼠标超出可拖动范围 自动停止")
};
};
</script>
</html>
若有更好的代码请在下发评论告诉我一声 谢谢!