Dojo之路:如何利用Dojo实现Drag and Drop效果


Posted in Javascript onApril 10, 2007

如今各种使用AJAX技术的站点都实现了Drag and Drop(拖动)效果,利用Dojo框架也可以很方便的实现,相比较其它框架,代码更少,且对浏览器的兼容性支持比较好。

先看一下效果,以下是51AJAX.com站点首页的效果,其中各个模块是可以任意拖动的:

Dojo之路:如何利用Dojo实现Drag and Drop效果

如何来实现呢?以下是具体步骤。为简单起见,做了一个Drag and Drop的Demo页面:

Dojo之路:如何利用Dojo实现Drag and Drop效果

以下是具体步骤:

1.html部分

要实现拖动,首先要有容器,其次要有可拖动的元素。在这里我们设置了三个Div作为容器,ID分别是container1,container2,container3,每个容器中各放置了一个Div作为可拖动元素,它们的class是divdrag。

2.javascript代码

首先在头部加入对dojo.js的引用,然后根据获取class为divdrag的元素,把它们注册为dojo.dnd.HtmlDragSource对象,再将container1,container2,container3注册为三个容器,且指定容器中的可拖动元素可以被拖动到的容器,以上事件封装成一个函数,增加至window.onload事件中。

    要下载完整的Dojo框架,请点击这里下载:http://download.dojotoolkit.org/release-0.3.1/dojo-0.3.1-ajax.zip

//引用以下两个dojo包  
dojo.require("dojo.style"); 
dojo.require("dojo.dnd.*"); function init(){ 
  //利用classname取到元素列表,将其注册为dojo.dnd.HtmlDragSour 
  var arr=dojo.html.getElementsByClass('divdrag') 
  for(var i=0;i<arr.length;i++){ 
   var parentDiv=arr[i].parentNode.id 
   new dojo.dnd.HtmlDragSource(arr[i],parentDiv);    
  } 
  //定义容器  
     new dojo.dnd.HtmlDropTarget("container1", ["container1","container2","container3"]);    
     new dojo.dnd.HtmlDropTarget("container2", ["container1","container2","container3"]);    
     new dojo.dnd.HtmlDropTarget("container3", ["container1","container2","container3"]);        
} 
//增加到window.onload事件中 
window.onload=function(){init();}
Javascript 相关文章推荐
Prototype 1.5.0_rc1 及 Prototype 1.5.0 Pre0小抄本
Sep 22 Javascript
12个非常有创意的JavaScript小游戏
Mar 18 Javascript
javascript控制在光标位置插入文字适合表情的插入
Jun 09 Javascript
JavaScript实现信用卡校验方法
Apr 07 Javascript
纯JS实现表单验证实例
Dec 24 Javascript
详解windows下vue-cli及webpack 构建网站(二)导入bootstrap样式
Jun 17 Javascript
详解vue axios中文文档
Sep 12 Javascript
vue.js动画中的js钩子函数的实现
Jul 06 Javascript
jQuery实现的点击图片居中放大缩小功能示例
Jan 16 jQuery
简单了解JavaScript中的执行上下文和堆栈
Jun 24 Javascript
layer弹出层自适应高度,垂直水平居中的实现
Sep 16 Javascript
原生js实现九宫格拖拽换位
Jan 26 Javascript
给moz-firefox下添加IE方法和属性
Apr 10 #Javascript
用javascript父窗口控制只弹出一个子窗口
Apr 10 #Javascript
javascript 控制弹出窗口
Apr 10 #Javascript
javascript应用:Iframe自适应其加载的内容高度
Apr 10 #Javascript
用javascript动态调整iframe高度的代码
Apr 10 #Javascript
Javascript下的keyCode键码值表
Apr 10 #Javascript
用javascript控制iframe滚动的代码
Apr 10 #Javascript
You might like
实现WordPress主题侧边栏切换功能的PHP脚本详解
2015/12/14 PHP
万能的php分页类
2017/07/06 PHP
JS array 数组详解
2009/03/22 Javascript
Extjs Ajax 乱码问题解决方案
2009/04/15 Javascript
JavaScript可否多线程? 深入理解JavaScript定时机制
2012/05/23 Javascript
javascript变量声明实例分析
2015/04/25 Javascript
javascript实现全角半角检测的方法
2015/07/23 Javascript
一道关于JavaScript变量作用域的面试题
2016/03/08 Javascript
js手动播放图片实现图片轮播效果
2016/09/17 Javascript
浅谈Web页面向后台提交数据的方式和选择
2016/09/23 Javascript
js实现短信发送倒计时功能(正则验证)
2017/02/10 Javascript
Linux CentOS系统下安装node.js与express的方法
2017/04/01 Javascript
JS实现利用两个队列表示一个栈的方法
2017/12/13 Javascript
vue 的keep-alive缓存功能的实现
2018/03/22 Javascript
node 使用 async 控制并发的方法
2018/05/07 Javascript
Node+OCR实现图像文字识别功能
2018/11/26 Javascript
vue中利用Promise封装jsonp并调取数据
2019/06/18 Javascript
从Node.js事件触发器到Vue自定义事件的深入讲解
2020/06/26 Javascript
使用Python的Twisted框架实现一个简单的服务器
2015/04/16 Python
使用Python对MySQL数据操作
2017/04/06 Python
python多线程抽象编程模型详解
2019/03/20 Python
Python3安装Pillow与PIL的方法
2019/04/03 Python
python如何解析配置文件并应用到项目中
2019/06/27 Python
python向字符串中添加元素的实例方法
2019/06/28 Python
Python机器学习算法库scikit-learn学习之决策树实现方法详解
2019/07/04 Python
如何用python写个模板引擎
2021/01/14 Python
最新大学毕业求职简历的自我评价
2013/10/18 职场文书
婚礼证婚人证婚词
2014/01/08 职场文书
企业申诉管理制度
2014/01/30 职场文书
电台实习生求职信
2014/02/25 职场文书
作风建设演讲稿
2014/05/23 职场文书
2014年小学辅导员工作总结
2014/12/23 职场文书
入党自荐书范文
2015/03/05 职场文书
入党介绍人考察意见
2015/06/01 职场文书
职场:企业印章管理制度(模板)
2019/10/18 职场文书
redis连接被拒绝的解决方案
2021/04/12 Redis