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 相关文章推荐
表格 隔行换色升级版
Nov 07 Javascript
jquery.post用法关于type设置问题补充
Jan 03 Javascript
window.print打印指定div指定网页指定区域的方法
Aug 04 Javascript
javascript元素动态创建实现方法
May 13 Javascript
JavaScript DOM节点操作方法总结
Aug 23 Javascript
JavaScript SHA1加密算法实现详细代码
Oct 06 Javascript
浅析JS中对函数function的理解(基础篇)
Oct 14 Javascript
微信小程序 自定义对话框实例详解
Jan 20 Javascript
javascript实现滑动解锁功能
Mar 22 Javascript
浅析node.js的模块加载机制
May 25 Javascript
JavaScript RegExp 对象用法详解
Sep 24 Javascript
详解小程序BackgroundAudioManager踩坑之旅
Dec 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 批量删除数据的方法分析
2009/10/30 PHP
php smarty 二级分类代码和模版循环例子
2011/06/16 PHP
yii去掉必填项中星号的方法
2015/12/28 PHP
WordPress开发中自定义菜单的相关PHP函数使用简介
2016/01/05 PHP
PHP抓取淘宝商品的用户晒单评论+图片+搜索商品列表实例
2016/04/14 PHP
PHP针对redis常用操作实例详解
2019/08/17 PHP
jQuery EasyUI 中文API Layout(Tabs)
2010/04/27 Javascript
JS中产生20位随机数以0-9为例也可以是a-z A-Z
2014/08/01 Javascript
jQuery中prev()方法用法实例
2015/01/08 Javascript
JS实现新浪微博效果带遮罩层的弹出框代码
2015/10/12 Javascript
详解javascript数组去重问题
2015/11/06 Javascript
利用AJAX实现WordPress中的文章列表及评论的分页功能
2016/05/17 Javascript
JS对象的深度克隆方法示例
2017/03/16 Javascript
JS严格模式知识点总结
2018/02/27 Javascript
JS实现的简单折叠展开动画效果示例
2018/04/28 Javascript
浅析vue.js数组的变异方法
2018/06/30 Javascript
vue 实现路由跳转时更改页面title
2019/11/05 Javascript
keep-alive不能缓存多层级路由菜单问题解决
2020/03/10 Javascript
Python 字符串定义
2009/09/25 Python
跟老齐学Python之有容乃大的list(1)
2014/09/14 Python
简单介绍Python中的round()方法
2015/05/15 Python
对python产生随机的二维数组实例详解
2018/12/13 Python
PyQt4 treewidget 选择改变颜色,并设置可编辑的方法
2019/06/17 Python
python如何爬取网站数据并进行数据可视化
2019/07/08 Python
opencv导入头文件时报错#include的解决方法
2019/07/31 Python
python已协程方式处理任务实现过程
2019/12/27 Python
基于python实现获取网页图片过程解析
2020/05/11 Python
python代数式括号有效性检验示例代码
2020/10/04 Python
Pycharm自动添加文件头注释和函数注释参数的方法
2020/10/23 Python
HTML5单选框、复选框、下拉菜单、文本域的实现代码
2020/12/01 HTML / CSS
加拿大休闲和工业服装和鞋类零售商:L’Équipeur
2018/01/12 全球购物
如何将字串String转换成整数int
2015/02/21 面试题
SQL Server面试题
2016/10/17 面试题
计算机专业毕业生自荐信
2013/12/31 职场文书
问卷调查计划书
2014/01/10 职场文书
学生违反校规检讨书
2014/10/28 职场文书