http://bbs.zhinengshe.com/thread-1200-1-1.html

要求:实现div块的拖拽

原理:拖拽过程中鼠标点和div块的相对位置保持不变。

需要理解三点:

1. 为什么要把onmousemove,onmouseup加在document上面 ?

2. onmouseup要怎么使用 ?

3. 如何防止div块跑出边界 ?

 <!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
<style>
#div1 {
width: 200px;
height: 200px;
background-color: red;
position: absolute;
}
</style>
<script>
window.onload = function () {
var oDiv = document.getElementById("div1"); var disX = 0;
var disY = 0; oDiv.onmousedown = function (event) {
disX = event.clientX - oDiv.offsetLeft;
disY = event.clientY - oDiv.offsetTop; document.onmousemove = function (event) { var divLeft = event.clientX - disX;
var divTop = event.clientY - disY; if (divLeft < 0) divLeft = 0;
if (divLeft > document.documentElement.clientWidth-oDiv.offsetWidth) {
divLeft = document.documentElement.clientWidth-oDiv.offsetWidth;
}
if (divTop < 0) divTop = 0;
if (divTop > document.documentElement.clientHeight - oDiv.offsetHeight) {
divTop = document.documentElement.clientHeight - oDiv.offsetHeight;
} oDiv.style.left = divLeft + "px";
oDiv.style.top = divTop + "px";
};
document.onmouseup = function () {
document.onmousemove = null;
document.onmouseup = null;
}
};
}
</script>
</head>
<body>
<div id="div1"></div>
</body>
</html>

运行效果:【点击这里】

最新文章

  1. Jexus web server V5.4.5 已经发布
  2. php/js互传cookie中文乱码的问题
  3. python--ulipad控制台中文输出乱码
  4. JSP中文乱码解决方案
  5. C++ Ouput Exactly 2 Digits After Decimal Point 小数点后保留三位数字
  6. NOIP 2014 普及组 T4 子矩阵
  7. ViewState的用法
  8. MongoDB索引(一) --- 入门篇:学习使用MongoDB数据库索引
  9. [Noi2015]小园丁和老司机
  10. Go 语言常量
  11. C++对象模型的那些事儿之二:对象模型(下)
  12. 洛谷P1494 【[国家集训队]小Z的袜子】
  13. 如何使用Beyond Compare 对比差异文件【制作Patch(补丁包)文件】
  14. 学习笔记43—Linux基础集
  15. Codeforces Round #506 (Div. 3) C. Maximal Intersection
  16. 属性动画和Activity、Fragment过渡动画等
  17. Netty 零拷贝(一)Linux 零拷贝
  18. 移植C/C++代码的十个技巧
  19. Python 面向对象编程——访问限制
  20. js里面return 和 return false的区别

热门文章

  1. Java语言基础(12)
  2. Python学习笔记----数据类型 运算符 循环 条件判断
  3. kotlin递归&amp;尾递归优化
  4. chrome插件开发-notification API注意事项
  5. 函数参数-arguments-reset参数
  6. nginx第七天
  7. Java-ConfigHelper工具类
  8. 详解 @MapperScan 注解和 @Mapper 注解
  9. docker安装redis并允许外网访问
  10. jquery toggle()方法 语法