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参数的小问题
Mar 02 Javascript
JQuery 动画卷页 返回顶部 动画特效(兼容Chrome)
Feb 15 Javascript
JS 文件传参及处理技巧分析
May 13 Javascript
五个jQuery图片画廊插件 推荐
May 12 Javascript
JavaScript Array Flatten 与递归使用介绍
Oct 30 Javascript
文本框获得焦点和失去焦点的判断代码
Mar 18 Javascript
JavaScript中property和attribute的区别详细介绍
Mar 03 Javascript
jQuery实现带玻璃流光质感的手风琴特效
Nov 20 Javascript
js计算系统当前日期是星期几的方法
Jul 14 Javascript
JS数组去掉重复数据只保留一条的实现代码
Aug 11 Javascript
JavaScript数组去重实现方法小结
Jan 17 Javascript
Electron+vue从零开始打造一个本地播放器的方法示例
Oct 27 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实现获取图片颜色值的方法
2014/07/11 PHP
PHP多文件上传类实例
2015/03/07 PHP
Yii数据模型中rules类验证器用法分析
2016/07/15 PHP
探究Laravel使用env函数读取环境变量为null的问题
2016/12/06 PHP
PHP开发中csrf攻击的简单演示和防范
2017/05/07 PHP
Laravel 自定命令以及生成文件的例子
2019/10/23 PHP
JavaScript获取一个范围内日期的方法
2015/04/24 Javascript
Angular2 http jsonp的实例详解
2017/08/31 Javascript
实例学习JavaScript读取和写入cookie
2018/01/29 Javascript
百度小程序自定义通用toast组件
2019/07/17 Javascript
如何在vue项目中嵌入jsp页面的方法(2种)
2020/02/06 Javascript
使用node.JS中的url模块解析URL信息
2020/02/06 Javascript
three.js着色器材质的内置变量示例详解
2020/08/16 Javascript
js实现纯前端压缩图片
2020/11/16 Javascript
Python的Flask框架与数据库连接的教程
2015/04/20 Python
Python基于回溯法子集树模板解决选排问题示例
2017/09/07 Python
解决Python网页爬虫之中文乱码问题
2018/05/11 Python
django2+uwsgi+nginx上线部署到服务器Ubuntu16.04
2018/06/26 Python
谈一谈数组拼接tf.concat()和np.concatenate()的区别
2020/02/07 Python
pyspark给dataframe增加新的一列的实现示例
2020/04/24 Python
Python更换pip源方法过程解析
2020/05/19 Python
用python爬虫批量下载pdf的实现
2020/12/01 Python
对Pytorch 中的contiguous理解说明
2021/03/03 Python
HTML5中Canvas与SVG的画图原理比较
2013/01/16 HTML / CSS
韩国著名的在线综合购物网站:Akmall
2016/08/07 全球购物
瑞士灯具购物网站:Lampenwelt.ch
2018/07/08 全球购物
Gap英国官网:Gap UK
2018/07/18 全球购物
英国绿色商店:Natural Collection
2019/05/03 全球购物
个人收入证明范本
2014/01/12 职场文书
你的创业计划书怎样才能打动风投
2014/02/06 职场文书
高中综合实践活动总结
2014/07/07 职场文书
制冷与空调专业毕业生推荐信
2014/07/07 职场文书
副校长竞聘演讲稿
2014/09/01 职场文书
通知函格式范文
2015/04/27 职场文书
微信小程序实现录音Record功能
2021/05/09 Javascript
为什么MySQL分页用limit会越来越慢
2021/07/25 MySQL