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 相关文章推荐
在服务端(Page.Write)调用自定义的JS方法详解
Aug 09 Javascript
js类式继承的具体实现方法
Dec 31 Javascript
中文输入法不触发onkeyup事件的解决办法
Jul 09 Javascript
JavaScript实现获取dom中class的方法
Feb 09 Javascript
jQuery支持动态参数将函数绑定到事件上的方法
Mar 17 Javascript
jQuery1.9+中删除了live以后的替代方法
Jun 17 Javascript
javascript 动态样式添加的简单实现
Oct 11 Javascript
JavaScript数组迭代方法
Mar 03 Javascript
微信小程序中换行空格(多个空格)写法详解
Jul 10 Javascript
ES6中的class是如何实现的(附Babel编译的ES5代码详解)
May 17 Javascript
微信小程序自定义组件components(代码详解)
Oct 21 Javascript
JS 图片压缩原理与实现方法详解
Apr 29 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/05/07 PHP
php无限分类且支持输出树状图的详细介绍
2013/06/19 PHP
PHP读取CURL模拟登录时生成Cookie文件的方法
2014/11/04 PHP
PHP中变量引用与变量销毁机制分析
2014/11/15 PHP
(转载)JavaScript中匿名函数,函数直接量和闭包
2007/05/08 Javascript
Jquery 获得服务器控件值的方法小结
2010/05/11 Javascript
在Ajax中使用Flash实现跨域数据读取的实现方法
2010/12/02 Javascript
jquery清空textarea等输入框实现代码
2013/04/22 Javascript
javascript自启动函数的问题探讨
2013/10/05 Javascript
Javascript 多浏览器兼容总结(实战经验)
2013/10/30 Javascript
Javascript 鼠标移动上去 滑块跟随效果代码分享
2013/11/23 Javascript
js跳转页面方法总结
2014/01/29 Javascript
javascript解三阶幻方(九宫格)
2015/04/22 Javascript
JS实现下拉菜单赋值到文本框的方法
2015/08/18 Javascript
利用vue写todolist单页应用
2016/12/15 Javascript
CSS3 动画卡顿性能优化的完美解决方案
2018/09/20 Javascript
使用layer模态框给新页面传值的方法
2019/09/27 Javascript
微信小程序工具函数封装
2019/10/28 Javascript
javascript实现评分功能
2020/06/24 Javascript
[00:47]TI7不朽珍藏III——沙王不朽展示
2017/07/15 DOTA
使用python实现拉钩网上的FizzBuzzWhizz问题示例
2014/05/05 Python
关于你不想知道的所有Python3 unicode特性
2014/11/28 Python
Python编程实现输入某年某月某日计算出这一天是该年第几天的方法
2017/04/18 Python
python 获取字符串MD5值方法
2018/05/29 Python
让Python脚本暂停执行的几种方法(小结)
2019/07/11 Python
python如何输出反斜杠
2020/06/18 Python
python单元测试框架pytest的使用示例
2020/10/07 Python
中国首家奢侈品O2O网购平台:第五大道奢侈品网
2017/12/14 全球购物
Banana Republic英国官网:香蕉共和国,GAP集团旗下偏贵族风
2018/04/24 全球购物
Boden英国官网:英国知名原创时装品牌
2018/11/06 全球购物
UNIX操作系统结构由哪几部分组成
2016/02/17 面试题
市场营销大学生职业规划书
2014/02/25 职场文书
2014年社会实践活动总结范文
2014/04/29 职场文书
六一儿童节演讲稿
2014/05/23 职场文书
python之PySide2安装使用及QT Designer UI设计案例教程
2021/07/26 Python
mysql通过group by分组取最大时间对应数据的两种有效方法
2022/09/23 MySQL