首页 > 代码库 > 实现小窗口拖拽的效果

实现小窗口拖拽的效果

<style>p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 31.0px Consolas; color: #2b7ec3 } p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 31.0px Consolas; min-height: 36.0px } p.p3 { margin: 0.0px 0.0px 0.0px 0.0px; font: 31.0px Consolas; color: #d74200 } p.p4 { margin: 0.0px 0.0px 0.0px 0.0px; font: 31.0px Consolas; color: #289c97 } p.p5 { margin: 0.0px 0.0px 0.0px 0.0px; font: 31.0px Consolas; color: #4a8a01 } p.p6 { margin: 0.0px 0.0px 0.0px 0.0px; font: 31.0px Consolas; color: #060606 } p.p7 { margin: 0.0px 0.0px 0.0px 0.0px; font: 31.0px Consolas; color: #4f5d66 } p.p8 { margin: 0.0px 0.0px 0.0px 0.0px; font: 31.0px Consolas; color: #a5b2b9 } p.p9 { margin: 0.0px 0.0px 0.0px 0.0px; font: 31.0px Consolas; color: #e48b00 } p.p10 { margin: 0.0px 0.0px 0.0px 0.0px; font: 31.0px Consolas; color: #698906 } span.s1 { color: #4f5d66 } span.s2 { color: #2b7ec3 } span.s3 { color: #48565d } span.s4 { color: #289c97 } span.s5 { color: #d74200 } span.s6 { color: #000000 } span.s7 { color: #060606 } span.s8 { color: #929151 } span.s9 { color: #ad42ef } span.s10 { color: #698906 } span.s11 { color: #4a8a01 } span.s12 { color: #d16400 } span.s13 { color: #4663cc } span.s14 { color: #b58a00 } span.Apple-tab-span { white-space: pre }</style>

<!DOCTYPE html>

<html>

 

<head>

<meta charset="UTF-8">

<title></title>

<style type="text/css">

#box {

height: 300px;

width: 300px;

background-color: green;

position: absolute;

}

</style>

</head>

 

<body>

<div id="box">

 

</div>

</body>

<script type="text/javascript">

var box = document.getElementById("box");

//鼠标按下的函数

box.onmousedown = function(ev) {

var oEvent = ev || event;

//求出鼠标和box的位置差值

var x = oEvent.clientX - box.offsetLeft;

var y = oEvent.clientY - box.offsetTop;

//鼠标移动的函数

//把事件加在document上,解决因为鼠标移动太快时,

//鼠标超过box后就没有了拖拽的效果的问题

document.onmousemove = function(ev) {

var oEvent = ev || event;

 

//保证拖拽框一直保持在浏览器窗口内部,不能被拖出的浏览器窗口的范围

var l = oEvent.clientX - x;

var t = oEvent.clientY - y;

if(l < 0) {

l = 0;

 

} else if(l > document.documentElement.clientWidth - box.offsetWidth) {

l = document.documentElement.clientWidth - box.offsetWidth;

}

if(t < 0) {

t = 0;

} else if(t > document.documentElement.clientHeight - box.offsetHeight) {

t = document.documentElement.clientHeight - box.offsetHeight;

}

box.style.left = l + "px";

box.style.top = t + "px";

}

//鼠标抬起的函数

document.onmouseup = function() {

document.onmousemove = null;

document.onmouseup = null;

}

//火狐浏览器在拖拽空div时会出现bug

//return false阻止默认事件,解决火狐的bug

return false;

 

}

</script>

 

</html>

实现小窗口拖拽的效果