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 相关文章推荐
filemanage功能中用到的lib.js
Apr 08 Javascript
深入解析contentWindow, contentDocument
Jul 04 Javascript
javascript闭包传参和事件的循环绑定示例探讨
Apr 17 Javascript
AngularJS入门教程之学习环境搭建
Dec 06 Javascript
实现音乐播放器的代码(html5+css3+jquery)
Aug 04 Javascript
jQuery实现折叠、展开的菜单组效果代码
Sep 16 Javascript
浅谈js键盘事件全面控制
Dec 01 Javascript
JS实现移动端判断上拉和下滑功能
Aug 07 Javascript
angularJs select绑定的model取不到值的解决方法
Oct 08 Javascript
angularjs请求数据的方法示例
Aug 06 Javascript
Postman如何实现参数化执行及断言处理
Jul 28 Javascript
js实现模拟购物商城案例
May 18 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修改指定文件后缀的方法
2014/09/11 PHP
ucenter通信原理分析
2015/01/09 PHP
PHP实现的XML操作类【XML Library】
2016/12/29 PHP
不错的一个日期输入 动态
2006/11/06 Javascript
jquery判断单个复选框是否被选中的代码
2009/09/03 Javascript
jquery+ashx无刷新GridView数据显示插件(实现分页、排序、过滤功能)
2010/04/25 Javascript
jQuery实现自定义下拉列表
2015/01/05 Javascript
JavaScript中split() 使用方法汇总
2015/04/17 Javascript
js模拟淘宝网的多级选择菜单实现方法
2015/08/18 Javascript
ionic实现可滑动的tab选项卡切换效果
2020/04/15 Javascript
微信小程序 loading(加载中提示框)实例
2016/10/28 Javascript
javascript 的变量、作用域和内存问题
2017/04/19 Javascript
深入理解Vue-cli搭建项目后的目录结构探秘
2017/07/13 Javascript
vue+iview写个弹框的示例代码
2017/12/05 Javascript
js自定义trim函数实现删除两端空格功能
2018/02/09 Javascript
JavaScript防止全局变量污染的方法总结
2018/08/02 Javascript
jQuery轮播图实例详解
2018/08/15 jQuery
node.js使用net模块创建服务器和客户端示例【基于TCP协议】
2020/02/14 Javascript
Node.js 深度调试方法解析
2020/07/28 Javascript
pycharm远程调试openstack代码
2017/11/21 Python
python tensorflow学习之识别单张图片的实现的示例
2018/02/09 Python
python实现自动网页截图并裁剪图片
2018/07/30 Python
python3+PyQt5 自定义窗口部件--使用窗口部件样式表的方法
2019/06/26 Python
基于梯度爆炸的解决方法:clip gradient
2020/02/04 Python
浅析PyCharm 的初始设置(知道)
2020/10/12 Python
Django启动时找不到mysqlclient问题解决方案
2020/11/11 Python
世界著名的顶级牛排:Omaha Steak(奥马哈牛排)
2016/09/20 全球购物
可打印的优惠券、杂货和优惠券代码:Coupons.com
2018/06/12 全球购物
SmartBuyGlasses荷兰:购买太阳镜和眼镜
2020/03/16 全球购物
通信工程专业个人找工作求职信范文
2013/09/21 职场文书
市场开发与营销专业求职信
2013/12/31 职场文书
医学生就业推荐表自我鉴定
2014/03/26 职场文书
酒店客房服务员岗位职责
2015/04/09 职场文书
催款律师函范文
2015/05/27 职场文书
2016年劳模先进事迹材料
2016/02/25 职场文书
关于python类SortedList详解
2021/09/04 Python