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 相关文章推荐
层序遍历在ExtJs的TreePanel中的应用
Oct 16 Javascript
javascript GUID生成器实现代码
Oct 31 Javascript
使用SyntaxHighlighter实现HTML高亮显示代码的方法
Feb 04 Javascript
IE6 fixed的完美解决方案
Mar 31 Javascript
JS Pro-深入面向对象的程序设计之继承的详解
May 07 Javascript
js内存泄露的几种情况详细探讨
May 31 Javascript
深入理解JavaScript系列(39):设计模式之适配器模式详解
Mar 04 Javascript
javascript实现获取服务器时间
May 19 Javascript
基于jQuery实现仿微博发布框字数提示
Jul 27 Javascript
jQuery实现为LI列表前3行设置样式的方法【2种方法】
Sep 04 Javascript
3种不同的ContextMenu右键菜单实现代码
Nov 03 Javascript
JavaScript严格模式下关于this的几种指向详解
Jul 12 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
关于PHP实现异步操作的研究
2013/02/03 PHP
一致性哈希算法以及其PHP实现详细解析
2013/08/24 PHP
php中session_id()函数详细介绍,会话id生成过程及session id长度
2015/09/23 PHP
PHP实现腾讯与百度坐标转换
2017/08/05 PHP
JavaScript几种形式的树结构菜单
2010/05/10 Javascript
JS验证控制输入中英文字节长度(input、textarea等)具体实例
2013/06/21 Javascript
js中split函数的使用方法说明
2013/12/26 Javascript
使用javascript控制cookie显示和隐藏背景图
2014/02/12 Javascript
jquery处理页面弹出层查询数据等待操作实例
2015/03/25 Javascript
JS实现自动定时切换的简洁网页选项卡效果
2015/10/13 Javascript
jquery获取select选中值的方法分析
2015/12/22 Javascript
jQuery中通过ajax调用webservice传递数组参数的问题实例详解
2016/05/20 Javascript
AngularJS入门教程之服务(Service)
2016/07/27 Javascript
AngularJS ng-bind 指令简单实现
2016/07/30 Javascript
JS实现放大、缩小及拖拽图片的方法【可兼容IE、火狐】
2016/08/23 Javascript
js canvas实现放大镜查看图片功能
2017/06/08 Javascript
简单谈谈require模块化jquery和angular的问题
2017/06/23 jQuery
JS实现模糊查询带下拉匹配效果
2018/06/21 Javascript
python使用正则表达式检测密码强度源码分享
2014/06/11 Python
pytorch 数据集图片显示方法
2018/07/26 Python
python中copy()与deepcopy()的区别小结
2018/08/03 Python
python matplotlib库绘制条形图练习题
2019/08/10 Python
python实现查找所有程序的安装信息
2020/02/18 Python
面向新手解析python Beautiful Soup基本用法
2020/07/11 Python
Python模拟键盘输入自动登录TGP
2020/11/27 Python
澳大利亚在线时尚精品店:Hello Molly
2018/02/26 全球购物
矫正人员思想汇报
2014/01/08 职场文书
高中生期末评语
2014/01/28 职场文书
保护环境倡议书
2014/04/14 职场文书
小学生志愿者活动方案
2014/08/23 职场文书
教师工作自我鉴定范文
2014/09/14 职场文书
名人演讲稿范文
2014/09/16 职场文书
搞笑结婚保证书
2015/05/08 职场文书
建国大业观后感600字
2015/06/01 职场文书
JavaScript中关于预编译、作用域链和闭包的理解
2021/03/31 Javascript
关于Python中*args和**kwargs的深入理解
2021/08/07 Python