JS事件中级 --- 拖拽
2015-06-10 10:19
761 查看
http://bbs.zhinengshe.com/thread-1200-1-1.html
要求:实现div块的拖拽
原理:拖拽过程中鼠标点和div块的相对位置保持不变。
需要理解三点:
1. 为什么要把onmousemove,onmouseup加在document上面 ?
2. onmouseup要怎么使用 ?
3. 如何防止div块跑出边界 ?
View Code
运行效果:【点击这里】
要求:实现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>
View Code
运行效果:【点击这里】
相关文章推荐
- jsp页面动态加载form标签的action地址和里面的submit按钮事件
- js_原型链
- 在JavaScript中用getMinutes()方法返回指定的分时刻
- 使用phantomjs实现highcharts等报表通过邮件发送(本文仅提供完整解决方案和实现思路,完全照搬不去整理代码无法马上得到效果)
- JavaScript中的getMilliseconds()方法使用详解
- 【最小生成树】BZOJ1016: [JSOI2008]最小生成树计数
- js身份证验证
- JavaScript中计算网页中某个元素的位置
- 代理解决js跨域
- JavaScript去掉字符串前后空格
- javascript提示抖动实现方法
- JS 函数访问方式总结
- JSON 4000 学习
- json数据解析
- 详解JavaScript中getFullYear()方法的使用
- JavaScript中判断函数、变量是否存在
- JavaScript检查手机格式是否错误
- Javascript中实现String.startsWith和endsWith方法
- D3js-画二维坐标轴(x轴,y轴)
- Javascript中判断对象是否为空