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 相关文章推荐
判断某个字符在一个字符串中是否存在的js代码
Feb 28 Javascript
js读取cookie方法总结
Oct 31 Javascript
JS实现仿QQ聊天窗口抖动特效
May 10 Javascript
页面get请求 中文参数方法乱码问题的快速解决方法
May 31 Javascript
AngularJS实现分页显示数据库信息
Jul 01 Javascript
jQuery EasyUI常用数据验证汇总
Sep 18 Javascript
AngularJS监听路由的变化示例代码
Sep 23 Javascript
jQuery 如何实现一个滑动按钮开关
Dec 01 Javascript
Express + Session 实现登录验证功能
Sep 08 Javascript
微信小程序block的使用教程
Apr 01 Javascript
JS秒杀倒计时功能完整实例【使用jQuery3.1.1】
Sep 03 jQuery
vue 使用原生组件上传图片的实例
Sep 08 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中=赋值操作符对不同数据类型的不同行为
2011/01/02 PHP
php下载文件的代码示例
2012/06/29 PHP
Windows下的PHP安装文件线程安全和非线程安全的区别
2014/04/23 PHP
PHP使用Session遇到的一个Permission denied Notice解决办法
2014/07/30 PHP
PHP的自定义模板引擎
2017/03/24 PHP
Laravel 5.5基于内置的Auth模块实现前后台登陆详解
2017/12/21 PHP
PHP 对象继承原理与简单用法示例
2020/04/21 PHP
js函数的引用, 关于内存的开销
2012/09/17 Javascript
js获取网页高度(详细整理)
2012/12/28 Javascript
js加载之使用DOM方法动态加载Javascript文件
2013/11/08 Javascript
jQuery给div,Span, a ,button, radio 赋值与取值
2016/06/24 Javascript
jQuery插件FusionCharts实现的3D帕累托图效果示例【附demo源码】
2017/03/25 jQuery
js实现多张图片延迟加载效果
2017/07/17 Javascript
JavaScript与Java正则表达式写法的区别介绍
2017/08/15 Javascript
JS数组去重常用方法实例小结【4种方法】
2018/05/28 Javascript
Angular2实现的秒表及改良版示例
2019/05/10 Javascript
Vue仿微信app页面跳转动画效果
2019/08/21 Javascript
解决vue cli4升级sass-loader(v8)后报错问题
2020/07/30 Javascript
[02:15]2014DOTA2国际邀请赛 专访LGD.lin小兔子是大腿
2014/07/14 DOTA
[05:31]干嘛呢兄弟!DOTA2 TI9语音轮盘部分出处
2019/05/14 DOTA
Python文档生成工具pydoc使用介绍
2015/06/02 Python
对python中的try、except、finally 执行顺序详解
2019/02/18 Python
Python实现查找字符串数组最长公共前缀示例
2019/03/27 Python
python队列原理及实现方法示例
2019/11/27 Python
Python在线和离线安装第三方库的方法
2020/10/31 Python
使用placeholder属性设置input文本框的提示信息
2020/02/19 HTML / CSS
CAT鞋美国官网:CAT Footwear
2017/11/27 全球购物
土耳其风格手工珠宝:Ottoman Hands
2019/07/26 全球购物
Athleta官网:购买女士瑜伽服、技术运动服和休闲运动服
2020/11/12 全球购物
旅游管理实习自我鉴定
2013/09/29 职场文书
2014年中班元旦活动方案
2014/02/14 职场文书
村党支部公开承诺书
2014/05/29 职场文书
区域销售主管岗位职责
2014/06/15 职场文书
单位计划生育责任书
2015/05/09 职场文书
幼儿园秋季开学通知
2015/07/16 职场文书
Java多条件判断场景中规则执行器的设计
2021/06/26 Java/Android