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 相关文章推荐
在JavaScript中判断整型的N种方法示例介绍
Jun 18 Javascript
JavaScript中window.showModalDialog()用法详解
Dec 18 Javascript
基于BootStrap Metronic开发框架经验小结【三】下拉列表Select2插件的使用
May 12 Javascript
对比分析Django的Q查询及AngularJS的Datatables分页插件
Feb 07 Javascript
纯JS实现只能输入数字的简单代码
Jun 21 Javascript
浅谈JavaScript作用域和闭包
Sep 18 Javascript
Vue+mui实现图片的本地缓存示例代码
May 24 Javascript
JS数组去重的6种方法完整实例
Dec 08 Javascript
koa+mongoose实现简单增删改查接口的示例代码
May 13 Javascript
JsonServer安装及启动过程图解
Feb 28 Javascript
vue实现简单全选和反选功能
Sep 15 Javascript
使用js原生实现年份轮播选择效果实例
Jan 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使用$_POST或$_SESSION[]向js函数传参
2014/09/16 PHP
php判断用户是否关注微信公众号
2016/07/22 PHP
PHP实现唤起微信支付功能
2019/02/18 PHP
javascript静态的url如何传递
2007/05/03 Javascript
js实现特定位取反原理及示例
2014/06/30 Javascript
JavaScript中的关联数组问题
2015/03/04 Javascript
轻松学习jQuery插件EasyUI EasyUI创建RSS Feed阅读器
2015/11/30 Javascript
js代码实现点击按钮出现60秒倒计时
2021/01/28 Javascript
js实现的二分查找算法实例
2016/01/21 Javascript
详解使用Typescript开发node.js项目(简单的环境配置)
2017/10/09 Javascript
JS声明对象时属性名加引号与不加引号的问题及解决方法
2018/02/16 Javascript
vue技术分享之你可能不知道的7个秘密
2018/04/09 Javascript
详解如何使用node.js的开发框架express创建一个web应用
2018/12/20 Javascript
Python中的Numpy入门教程
2014/04/26 Python
python中input()与raw_input()的区别分析
2016/02/27 Python
python中ImageTk.PhotoImage()不显示图片却不报错问题解决
2018/12/06 Python
详解Python requests 超时和重试的方法
2018/12/18 Python
Python面向对象程序设计之类的定义与继承简单示例
2019/03/18 Python
详解Python Matplotlib解决绘图X轴值不按数组排序问题
2019/08/05 Python
python切片(获取一个子列表(数组))详解
2019/08/09 Python
关于python tushare Tkinter构建的简单股票可视化查询系统(Beta v0.13)
2020/10/19 Python
Python 实现图片转字符画的示例(静态图片,gif皆可)
2020/11/05 Python
美的官方商城:Midea
2016/09/14 全球购物
猫途鹰:全球领先的旅游点评社区
2017/04/07 全球购物
《童年的发现》教学反思
2014/02/14 职场文书
成绩单公证书
2014/04/10 职场文书
《少年王勃》教学反思
2014/04/27 职场文书
关于建议书的格式范文
2014/05/20 职场文书
争先创优公开承诺书
2014/08/30 职场文书
2014离婚协议书范文
2014/09/10 职场文书
2014幼儿园教育教学工作总结
2014/12/17 职场文书
2015年学校党支部工作总结
2015/04/01 职场文书
运动会800米赞词
2015/07/22 职场文书
个人自我鉴定怎么写?
2019/07/01 职场文书
2019森林防火宣传标语大全!
2019/07/03 职场文书
创业计划书之餐饮馄饨店
2019/07/18 职场文书