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实现多域名不同文件的调用方法
Jan 12 Javascript
JQuery的ajax获取数据后的处理总结(html,xml,json)
Jul 14 Javascript
用JavaScript显示浏览器客户端信息的超相近教程
Jun 18 Javascript
jQuery实现带渐显效果的人物多级关系图代码
Oct 16 Javascript
three.js绘制地球、飞机与轨迹的效果示例
Feb 28 Javascript
jQuery加密密码到cookie的实现代码
Apr 18 jQuery
jQuery实现简单日期格式化功能示例
Sep 19 jQuery
vue主动刷新页面及列表数据删除后的刷新实例
Sep 16 Javascript
实例讲解JavaScript截取字符串
Nov 30 Javascript
vue路由切换之淡入淡出的简单实现
Oct 31 Javascript
highcharts.js数据绑定方式代码实例
Nov 13 Javascript
利用promise及参数解构封装ajax请求的方法
Mar 24 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
基于数据库的在线人数,日访问量等统计
2006/10/09 PHP
PHP Document 代码注释规范
2009/04/13 PHP
解决FastCGI 进程超过了配置的活动超时时限的问题
2013/07/03 PHP
phpstorm 正则匹配删除空行、注释行(替换注释行为空行)
2018/01/21 PHP
PHP检查端口是否可以被绑定的方法示例
2018/08/09 PHP
PHP pthreads v3使用中的一些坑和注意点分析
2020/02/21 PHP
JavaScript与函数式编程解释
2007/04/27 Javascript
jQuery 打造动态渐变按钮 详细图文教程
2010/04/25 Javascript
jQuery+ajax实现滚动到页面底部自动加载图文列表效果(类似图片懒加载)
2016/06/07 Javascript
Angularjs 自定义服务的三种方式(推荐)
2016/08/02 Javascript
AngularJS实现标签页的两种方式
2016/09/05 Javascript
nodejs实例解析(输出hello world)
2017/01/03 NodeJs
js实现登录框鼠标拖拽效果
2017/03/09 Javascript
教你如何编写Vue.js的单元测试的方法
2018/10/17 Javascript
vue+element实现表单校验功能
2019/05/20 Javascript
解决vue单页面修改样式无法覆盖问题
2019/08/05 Javascript
JavaScript 实现自己的安卓手机自动化工具脚本(推荐)
2020/05/13 Javascript
微信小程序使用GoEasy实现websocket实时通讯
2020/05/19 Javascript
jQuery实现动态加载瀑布流
2020/09/01 jQuery
详解Java中String JSONObject JSONArray List转换
2020/11/13 Javascript
[36:22]VP vs Serenity 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
[01:11:11]Alliance vs RNG 2019国际邀请赛淘汰赛 败者组BO1 8.20.mp4
2020/07/19 DOTA
matplotlib subplots 调整子图间矩的实例
2018/05/25 Python
Python pygame绘制文字制作滚动文字过程解析
2019/12/12 Python
PIL包中Image模块的convert()函数的具体使用
2020/02/26 Python
html5配合css3实现带提示文字的输入框(摆脱js)
2013/03/08 HTML / CSS
h5页面唤起app如果没安装就跳转下载(iOS和Android)
2020/06/03 HTML / CSS
The North Face北面英国官网:美国著名户外品牌
2017/12/13 全球购物
澳大利亚快时尚鞋类市场:Billini
2018/05/20 全球购物
工作睡觉检讨书
2014/02/25 职场文书
教师节促销方案
2014/03/22 职场文书
大学生迟到检讨书500字
2014/10/17 职场文书
2014年招商工作总结
2014/11/22 职场文书
世界气象日活动总结
2015/02/27 职场文书
2015年食品安全工作总结
2015/05/15 职场文书
Redis命令处理过程源码解析
2022/02/12 Redis