本地文件拖动到页面实例:(支持IE)

<script>
var DragFile = function (goalId) {
var g = document.getElementById(goalId); RegDragFile(g, CostFunc_File_ondrop);
}; var CostFunc_File_ondrop = function (e, goalIdObj) { var fileObj = e.dataTransfer.files[0]; //创建一个读取文件的流
var fileR = new FileReader(); //加载文件时在目标域加上一个图片标签
fileR.onload = function (e) {
goalIdObj.innerHTML = "<img src=" + this.result + "/>";
}; //读取文件的地址
fileR.readAsDataURL(fileObj); };
var RegDragFile = function (goalIdObj, Cust_File_ondrop) {
goalIdObj.ondragover = function (e) {
//阻止系统默认操作(前后都要做操作)
e.preventDefault();
}; goalIdObj.ondrop = function (e) {
//阻止系统默认操作(前后都要做操作)
e.preventDefault(); //用户自定义函数
CostFunc_File_ondrop(e, this);
};
};
</script>

  

  

页面元素拖动实例:(不支持IE)

   /**
* @author Zzq
*/
<script type="text/javascript">
var Act = {};
Act.DragAction = undefined; (function () { var DragAction_GoalArray = function (goalIdArray, sourceId) {
goalIdArray = goalIdArray || [];
var Exec = " "; for (var ele in goalIdArray) {
Exec += DragAction(goalIdArray[ele], sourceId) + " ";
} return new Function(Exec);
}; var DragAction = function (goalId, sourceId) {
var g = document.getElementById(goalId);
var s = document.getElementById(sourceId); RegDragAction(g, s, Cust_ondrop, Cust_ondragstart);
}; var Cust_ondrop = function (e, goalIdObj) {
var tmpObj = document.getElementById(e.dataTransfer.getData("sId"));
goalIdObj.appendChild(tmpObj);
}; var Cust_ondragstart = function (e, sourceId) {
//实质就是传给句柄的一个数据槽(所以第一个参数自定义即可)
e.dataTransfer.setData("sId", sourceId);
}; var RegDragAction = function (goalIdObj, sourceIdObj, CostFunc_ondrop, CostFunc_ondragstart) {
goalIdObj.ondragover = function (e) {
//阻止系统默认操作(前后都要做操作)
e.preventDefault();
}; goalIdObj.ondrop = function (e) {
//阻止系统默认操作(前后都要做操作)
e.preventDefault(); //用户自定义函数
CostFunc_ondrop(e, this);
}; sourceIdObj.ondragstart = function (e) {
//用户自定义函数
CostFunc_ondragstart(e, this.getAttribute("id"));
};
}; Act.DragAction = DragAction_GoalArray; })(); onload = function () {
var Ary = ["a2", "a3", "a4"]; Act.DragAction(Ary, "a1");
}
</script>

  

HTML5 拖拽功能的更多相关文章

  1. HTML5拖拽功能中 dataTransfer对象详解

    有了HTML5,老板再也不用担心我们的上传了,再加上有拖拽上传是不是很酷.百度一下,有关HTML5拖拽上传的文章和实例不少,都缺不了一个至关重要的东东DataTransfer.但是详细介绍的不多,尤其 ...

  2. HTML5拖拽功能drag

    1.创建拖拽对象 给需要拖拽的元素设置draggable属性,它有三个值: true:元素可以被拖拽:false:元素不能被拖拽:auto: 浏览器自己判断元素是否能被拖拽. 2.处理拖拽事件当我们拖 ...

  3. html5中的拖拽功能

    拖拽元素支持的事件 ondrag 应用于拖拽元素,整个拖拽过程都会调用 ondragstart 应用于拖拽元素,当拖拽开始时调用 ondragleave 应用于拖拽元素,当鼠标离开拖拽元素是调用 on ...

  4. Html5拖拽复制

    拖拽是一种常见的特性,即抓取对象以后拖到另一个位置. 在 HTML5 中,拖拽是标准的一部分,任何元素都能够拖拽. Html5拖拽非常常见的一个功能,但是大部分拖拽的案例都是一个剪切的过程, 项目中需 ...

  5. JQuery UI的拖拽功能

    JQuery UI是JQuery官方支持的WebUI 代码库,包含底层交互.动画.特效等API,并且封装了一些Web小部件(Widget).同时,JQuery UI继承了jquery的插件支持,有大量 ...

  6. HTML5 拖拽实现

    简介: 最早在网页中引入JavaScript拖放功能是IE4.当时,网页中只有两种对象可以拖放:图像和某些文本.拖放图像时,把鼠标放到图像上,按住鼠标不放就可以拖放它.拖放文本时,要先选中文本,然后可 ...

  7. JQuery UI的拖拽功能实现方法小结

    JQuery UI提供的API极大简化了拖拽功能的开发.只需要分别在拖拽源(source)和目标(target)上调用draggable和droppable两个函数即可. 拖拽原理 首先要明确几个概念 ...

  8. RCP:拖拽功能的实现 Drag and Drop

    SWT中的拖拽是使用的org.eclipse.swt.dnd. 有三个需要密切注意的类: 1.DragSource 2.DropTarget 3.Transfer DragSource封装了需要被拖拽 ...

  9. js实现登陆页面的拖拽功能

    <!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>登 ...

随机推荐

  1. 贪心 URAL 1303 Minimal Coverage

    题目传送门 /* 题意:最少需要多少条线段能覆盖[0, m]的长度 贪心:首先忽略被其他线段完全覆盖的线段,因为选取更长的更优 接着就是从p=0开始,以p点为标志,选取 (node[i].l < ...

  2. LightOJ1051 Good or Bad(DP)

    这题感觉做法应该挺多吧,数据规模那么小. 我用DP乱搞了.. dp0[i][j]表示字符串前i位能否组成末尾有连续j个元音字母 dp1[i][j]表示字符串前i位能否组成末尾有连续j个辅音字母 我的转 ...

  3. ural 1273. Tie

    1273. Tie Time limit: 1.0 secondMemory limit: 64 MB The subway constructors are not angels. The work ...

  4. BZOJ3325 : [Scoi2013]密码

    从以每一位为中心的回文串长度可以用Manacher倒推出$O(n)$对相等和不等关系. 将相等的用并查集维护,不等的连边. 然后输出方案时若还没被染过色,则求一个mex. #include<cs ...

  5. HDU 4649 Professor Tian(DP)

    题目链接 暴力水过的,比赛的时候T了两次,优化一下初始化,终于水过了. #include <cstdio> #include <cstring> #include <st ...

  6. Java线程之CompletionService

    转自:http://blog.csdn.net/andycpp/article/details/8902699 当使用ExecutorService启动了多个Callable后,每个Callable会 ...

  7. PHP将在对象被销毁前调用这个函数.它称为析构函数

    -构造函数和析构函数 如果你在一个类中声明一个函数,命名为__construct,这个函数将被当成是一个构造函数并在建立一个对象实例时被执行.清楚地说,__是两个下划线.就像其它任何函数一样,构造函数 ...

  8. 是否采用Sybase形式的自动字符串转义(用 '' 表示 ')

    ;; 关于php.ini ;; ; 这个文件必须命名为'php.ini'并放置在httpd.conf中PHPINIDir指令指定的目录中. ; 最新版本的php.ini可以在下面两个位置查看: ; h ...

  9. HashTable的典型用法以及参考实例

    Get-ADComputer -Identity "cnhzpd-f7sc83x" | select -property @{name="computername&quo ...

  10. 【新产品发布】【EVC8001 磁耦隔离式 USB 转 RS-485】

    EVC8001 是 XiaomaGee 团队打造的精品级 USB 转 RS-485 隔离转换器,全部采用最优方案,每个细节均做到最优化.最佳化.亮点举不胜举: ==================== ...