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 相关文章推荐
JQuery 简便实现页面元素数据验证功能
Mar 24 Javascript
js模拟弹出效果代码修正版
Aug 07 Javascript
修复ie8&amp;chrome下window的resize事件多次执行
Oct 20 Javascript
jQuery产品间断向下滚动效果核心代码
May 08 Javascript
理解Javascript图片预加载
Feb 23 Javascript
41个Web开发者必须收藏的JavaScript实用技巧
Jul 22 Javascript
JS检测window.open打开的窗口是否关闭
Jun 25 Javascript
微信小程序视图template模板引用的实例详解
Sep 20 Javascript
JS中移除非数字最多保留一位小数
May 09 Javascript
Vue 事件处理操作实例详解
Mar 05 Javascript
详解微信小程序的不同函数调用的几种方法
May 08 Javascript
Vue父子组件传值的一些坑
Sep 16 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学习资料汇总与网址
2007/03/16 PHP
分享一下贝贝成长进度的php代码
2012/09/14 PHP
浅析php数据类型转换
2014/01/09 PHP
使用PHP生成PDF方法详解
2015/01/23 PHP
PHP获取文件相对路径的方法
2015/02/26 PHP
微信公众号实现扫码获取微信用户信息(网页授权)
2019/04/09 PHP
PHP实现提高SESSION响应速度的几种方法详解
2019/08/09 PHP
PHP设计模式入门之迭代器模式原理与实现方法分析
2020/04/26 PHP
复制本贴标题和地址的js代码
2008/07/01 Javascript
jQuery的deferred对象使用详解
2011/08/20 Javascript
JAVASCRIPT代码编写俄罗斯方块网页版
2015/11/26 Javascript
BootStrap和jQuery相结合实现可编辑表格
2016/04/21 Javascript
基于BootStrap Metronic开发框架经验小结【四】Bootstrap图标的提取和利用
2016/05/12 Javascript
jQuery实现的form转json经典示例
2017/10/10 jQuery
Vue中全局变量的定义和使用
2019/06/05 Javascript
让mocha支持ES6模块的方法实现
2020/01/14 Javascript
Vue设置长时间未操作登录自动到期返回登录页
2020/01/22 Javascript
vue使用openlayers实现移动点动画
2020/09/24 Javascript
使用Python进行新浪微博的mid和url互相转换实例(10进制和62进制互算)
2014/04/25 Python
Python中atexit模块的基本使用示例
2015/07/08 Python
使用Python发送各种形式的邮件的方法汇总
2015/11/09 Python
以一个投票程序的实例来讲解Python的Django框架使用
2016/02/18 Python
Python使用Windows API创建窗口示例【基于win32gui模块】
2018/05/09 Python
使用Python快速制作可视化报表的方法
2019/02/03 Python
不归路系列:Python入门之旅-一定要注意缩进!!!(推荐)
2019/04/16 Python
python numpy--数组的组合和分割实例
2020/02/24 Python
GDAL 矢量属性数据修改方式(python)
2020/03/10 Python
python接口自动化之ConfigParser配置文件的使用详解
2020/08/03 Python
简述Html5 IphoneX 适配方法
2018/02/08 HTML / CSS
瑞典度假品牌:OAS
2019/05/28 全球购物
Guess欧洲官网:美国服饰品牌
2019/08/06 全球购物
爬山的活动方案
2014/08/16 职场文书
新兵入伍心得体会
2014/09/04 职场文书
群众路线教育实践活动批评与自我批评
2014/09/15 职场文书
员工离职感谢信
2015/01/22 职场文书
婚宴新郎致辞
2015/07/28 职场文书