码迷,mamicode.com
首页 > 其他好文 > 详细

实现小窗口拖拽的效果

时间:2016-12-03 10:04:24      阅读:162      评论:0      收藏:0      [点我收藏+]

标签:setw   java   element   osi   style   abs   浏览器   utf-8   function   

<!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>

实现小窗口拖拽的效果

标签:setw   java   element   osi   style   abs   浏览器   utf-8   function   

原文地址:http://www.cnblogs.com/niuniudashijie/p/6127993.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!