方法如下:

  1. var params = {
    left: 0,
  2. top: 0,
  3. currentX: 0,
  4. currentY: 0,
  5. flag: false
  6. };
  7. var getCss = function(o,key){
  8. return o.currentStyle? o.currentStyle[key] : document.defaultView.getComputedStyle(o,false)[key];
  9. };
  10. var startDrag = function(bar, target, callback){
  11. if(getCss(target, "left") !== "auto"){
  12. params.left = getCss(target, "left");
  13. }
  14. if(getCss(target, "top") !== "auto"){
  15. params.top = getCss(target, "top");
  16. }
  17. bar.onmousedown = function(event){
  18. params.flag = true;
  19. if(!event){
  20. event = window.event;
  21. bar.onselectstart = function(){
  22. return false;
  23. }
  24. }
  25. var e = event;
  26. params.currentX = e.clientX;
  27. params.currentY = e.clientY;
  28. };
  29. document.onmouseup = function(){
  30. params.flag = false;
  31. if(getCss(target, "left") !== "auto"){
  32. params.left = getCss(target, "left");
  33. }
  34. if(getCss(target, "top") !== "auto"){
  35. params.top = getCss(target, "top");
  36. }
  37. };
  38. document.onmousemove = function(event){
  39. var e = event ? event: window.event;
  40. if(params.flag){
  41. var nowX = e.clientX, nowY = e.clientY;
  42. var disX = nowX - params.currentX, disY = nowY - params.currentY;
  43. target.style.left = parseInt(params.left) + disX + "px";
  44. target.style.top = parseInt(params.top) + disY + "px";
  45. if (event.preventDefault) {
  46. event.preventDefault();
  47. }
  48. return false;
  49. }
  50. if (typeof callback == "function") {
  51. callback(parseInt(params.left) + disX, parseInt(params.top) + disY);
  52. }
  53. }
  54. };
 使用方法为
     startDrag("触发拖拽的对象","被拖拽的对象")

js实现简单拖拽效果的更多相关文章

  1. js插件-简单拖拽

    前端开发的时候,有好多地方用到拖拽效果,当然 http://jqueryui.com/draggable/  是个不错的选择,but 我是个打破砂锅问到底的人,抽点时间用js小小的实现了类似的插件,话 ...

  2. 用JS实现版面拖拽效果

    类似于这样的一个版面,点击标题栏,实现拖拽效果. 添加onmousedown事件 通过获取鼠标的坐标(clientX,clientY)来改变面板的位置 注意:面板使用绝对定位方式,是以左上角为参考点, ...

  3. Javascript:简单拖拽效果的实现

    核心代码: /* *完成一个拖拽事件由三大事件组成: *1:onmousedown:选择元素 *2:onmousemove:移动元素 *3:onmouseup:释放元素 */ function dra ...

  4. 好玩的原生js的简单拖拽

    这个拖拽的图片不是唯一的,拿到代码自己添加一张照片就可以啦 <!DOCTYPE html><html> <head> <meta charset=" ...

  5. 拖拽系列一、JavaScript实现简单的拖拽效果

        前端拖拽相关应用汇总 在现实生活中就像男孩子牵着(拖着)女朋友的手穿过马路:从马路的一端走到另一端这种场景很常见: 而在前端开发中拖拽效果也算是前端开发中应用最常见.最普遍的特效:其拖拽涉及知 ...

  6. 原生js简单实现拖拽效果

    实现弹窗拖拽效果的原理是:按下鼠标并移动——拖拽移动物体,抬起鼠标——停止移动.主要触发三个事件:onmousedown.onmousemove以及onmouseup: 首先搭建结构:一个宽350px ...

  7. React.js实现原生js拖拽效果及思考

    一.起因&思路 不知不觉,已经好几天没写博客了...近来除了研究React,还做了公司官网... 一直想写一个原生js拖拽效果,又加上近来学react学得比较嗨.所以就用react来实现这个拖 ...

  8. JavaScript实现最简单的拖拽效果

    一.一些无关痛痒的唠叨 拖拽还是挺不错的一个页面效果,我个人认为,其生命力在于可以让用户自己做一些操作,所谓自定义.例如: ①浏览器标签顺序的拖拽切换 现在基本上所有的选项卡式的浏览器都有顺序拖拽切换 ...

  9. js拖拽效果

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

随机推荐

  1. 转载:Bootstrap 源码解析

    Bootstrap 源码解析 前言 Bootstrap 是个CSS库,简单,高效.很多都可以忘记了再去网站查.但是有一些核心的东西需要弄懂.个人认为弄懂了这些应该就算是会了.源码看一波. 栅格系统 所 ...

  2. 1.类的加载机制_继承类的加载(一个小的Demo)说明

    今天我们先来一个小的Demo来了解类的加载顺序. public class ClassLoaderTest { public static void main(String[] args) { Sys ...

  3. 02.设计模式_NullObject模式

    使用NULL OBJECT模式,我们可以确保返回的总是有效的对象,即使失败时也代表对象什么也不做. 下面以一个数据库查询的示例来演示空对象模式. 1.Employe实体对象空对象的接口 Employe ...

  4. Spring Cloud (5)hystrix 服务监控

    1.pom 2.启动类 3. 微服务提供方 pom 4. 监控------已成功启动 --------------------------------------------------------- ...

  5. MiniDao_1.6.4 版本发布,轻量级Java持久化框架,Hibernate项目辅助利器

    MiniDao 简介及特征 MiniDao 是一款超轻量的JAVA持久层框架,具备Mybatis一样的SQL能力: 支持SQL分离.支持标签.支持注解.MiniDao产生的初衷是为了解决Hiberna ...

  6. 【JEECG技术文档】JEECG部门管理员操作手册

    功能介绍 使用部门管理员设置需要完成以下步骤: 1. 在“部门管理员设置”菜单配置权限以及分配管理员. 2. 在“部门角色管理”菜单配置角色,以及权限. 3. 在“部门用户角色授权”菜单分配角色到哪个 ...

  7. 对比深度学习十大框架:TensorFlow 并非最好?

    http://www.oschina.net/news/80593/deep-learning-frameworks-a-review-before-finishing-2016 TensorFlow ...

  8. How to Pronounce Word vs. World

    How to Pronounce Word vs. World Share Tweet Share Tagged With: Comparison, Dark L What is the differ ...

  9. Haskell语言学习笔记(91)Comprehension Extensions

    Comprehension Extensions 关于解析式的相关语言扩展. List and Comprehension Extensions 24 Days of GHC Extensions: ...

  10. 理解 IntelliJ IDEA 的项目配置和Web部署(转载)

    理解 IntelliJ IDEA 的项目配置和Web部署   1.项目配置的理解 IDEA 中最重要的各种设置项,就是这个 Project Structre 了,关乎你的项目运行,缺胳膊少腿都不行.最 ...