当前位置: 首页 > 图文教程 > 网络编程 > Javascript > Dojo之路:如何利用Dojo实现Drag and Drop效果

Javascript
JS 参数传递的实际应用代码分析
prototype与jquery下Ajax实现的差别
用JS写的简单的计算器实现代码
javascript 数组操作实用技巧
JavaScript 中级笔记 第二章
JavaScript 中级笔记 第三章
JavaScript 中级笔记 第四章 闭包
JavaScript 中级笔记 第五章 面向对象的基础
Mootools 1.2教程 函数
Mootools 1.2教程 事件处理
通过Mootools 1.2来操纵HTML DOM元素
Mootools 1.2教程 设置和获取样式表属性
Mootools 1.2教程 输入过滤第一部分(数字)
Mootools 1.2教程 输入过滤第二部分(字符串)
Mootools 1.2教程 Fx.Tween的使用
Mootools 1.2教程 Fx.Morph、Fx选项和Fx事件
MooTools 1.2中的Drag.Move来实现拖放
Mootools 1.2教程 正则表达式
Mootools 1.2教程 定时器和哈希简介
Mootools 1.2教程 滚动条(Slider)

Javascript 中的 Dojo之路:如何利用Dojo实现Drag and Drop效果


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-12   浏览: 173 ::
收藏到网摘: n/a

如今各种使用AJAX技术的站点都实现了Drag and Drop(拖动)效果,利用Dojo框架也可以很方便的实现,相比较其它框架,代码更少,且对浏览器的兼容性支持比较好。
  先看一下效果,以下是51AJAX.com站点首页的效果,其中各个模块是可以任意拖动的:
  
  如何来实现呢?以下是具体步骤。为简单起见,做了一个Drag and Drop的Demo页面:
  
  以下是具体步骤:
  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();}