var DragDrop = function () {
var dragging = null;
var diffX = 0;
var diffY = 0;
function handleEvent(event) {
event = EventUtil.getEvent(event);
var target = EventUtil.getTarget(event);
switch (event.type) {
case "mousedown":
if (target.className.indexOf("draggable") > -1) {
dragging = target;
diffX = event.clientX - target.offsetLeft;
diffY = event.clientY - target.offsetTop;
}
break;
case "mousemove":
if (dragging !== null) {
dragging.style.left = (event.clientX - diffX) + "px";
dragging.style.top = (event.clientY - diffY) + "px";
}
break;
case "mouseup":
dragging = null;
break;
}
}
return {
enable : function () {
EventUtil.addHandler(document, "mousedown", handleEvent);
EventUtil.addHandler(document, "mousemove", handleEvent);
EventUtil.addHandler(document, "mouseup", handleEvent);
},
disable : function () {
EventUtil.addHandler(document, "mousedown", handleEvent);
EventUtil.addHandler(document, "mousemove", handleEvent);
EventUtil.addHandler(document, "mouseup", handleEvent);
}
}
} ();
window.onload = function () {
DragDrop.enable(); DragDrop.disable();
}
 <body>
<div class="draggable" style="position:absolute; background-color:Red; width:100px; height:100px;left:0px"></div>
<div class="draggable" style="position:absolute; background-color:Red; width:100px; height:100px;left:200px"></div>
<div class="draggable" style="position:absolute; background-color:Red; width:100px; height:100px;left:500px"></div>
<div class="draggable" style="position:absolute; background-color:Red; width:100px; height:100px;left:800px"></div>
</body>

最新文章

  1. 误删/usr文件夹解决办法
  2. Java连接Oracle database小结
  3. 1 构建Mysql+heartbeat+DRBD+LVS集群应用系统系列之DRBD的搭建
  4. 1017. A除以B (20)
  5. 和声搜索算法-python实现
  6. UVa 10253 (组合数 递推) Series-Parallel Networks
  7. 怎样在osg中动态的设置drawable的最近最远裁剪面
  8. laravel controller:make
  9. [HDU 4828] Grids
  10. 使用libCurl实现断点下载
  11. buffer cache chain 图
  12. HDOJ 1308.Is It A Tree?
  13. HDU 1505 Largest Rectangle in a Histogram &amp;amp;&amp;amp; HDU 1506 City Game(动态规划)
  14. */美女镇楼/*&gt;&gt;&gt;---PHP中的OOP--&gt;面对过程与面对对象基础概念与内容--(封装、继承、多态)
  15. 一些css书写的小技巧
  16. angular/cli 常用指令
  17. kNN总结
  18. tr1
  19. Java.net.SocketException: Unrecognized Windows Sockets error: 0: JVM_Bind异常
  20. 判断文件是否存在,不要用if exist和if not exist,因为他们会受到文件是否隐藏的影响,改用dir /a 命令代替

热门文章

  1. js 兼容各类手机 的写法 待续
  2. iOS开发多线程篇—GCD简介
  3. pyqt5:图片自适应QLabel大小和图片移除
  4. conan-transit服上的库列表
  5. linux-*.filetype.bz2 unzip
  6. Codeforces123E. Maze【树形dp】【概率dp】【证明题】
  7. (8)os和sys模块
  8. 使用Spring Boot操作Hive JDBC时,启动时报出错误:NoSuchMethodError: org.eclipse.jetty.servlet.ServletMapping.setDef
  9. log4net保存到数据库系列五、新增数据库字段
  10. JS判断IP的正则表达式