HTML5 拖拽功能
<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>
/**
* @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 拖拽功能的更多相关文章
- HTML5拖拽功能中 dataTransfer对象详解
有了HTML5,老板再也不用担心我们的上传了,再加上有拖拽上传是不是很酷.百度一下,有关HTML5拖拽上传的文章和实例不少,都缺不了一个至关重要的东东DataTransfer.但是详细介绍的不多,尤其 ...
- HTML5拖拽功能drag
1.创建拖拽对象 给需要拖拽的元素设置draggable属性,它有三个值: true:元素可以被拖拽:false:元素不能被拖拽:auto: 浏览器自己判断元素是否能被拖拽. 2.处理拖拽事件当我们拖 ...
- html5中的拖拽功能
拖拽元素支持的事件 ondrag 应用于拖拽元素,整个拖拽过程都会调用 ondragstart 应用于拖拽元素,当拖拽开始时调用 ondragleave 应用于拖拽元素,当鼠标离开拖拽元素是调用 on ...
- Html5拖拽复制
拖拽是一种常见的特性,即抓取对象以后拖到另一个位置. 在 HTML5 中,拖拽是标准的一部分,任何元素都能够拖拽. Html5拖拽非常常见的一个功能,但是大部分拖拽的案例都是一个剪切的过程, 项目中需 ...
- JQuery UI的拖拽功能
JQuery UI是JQuery官方支持的WebUI 代码库,包含底层交互.动画.特效等API,并且封装了一些Web小部件(Widget).同时,JQuery UI继承了jquery的插件支持,有大量 ...
- HTML5 拖拽实现
简介: 最早在网页中引入JavaScript拖放功能是IE4.当时,网页中只有两种对象可以拖放:图像和某些文本.拖放图像时,把鼠标放到图像上,按住鼠标不放就可以拖放它.拖放文本时,要先选中文本,然后可 ...
- JQuery UI的拖拽功能实现方法小结
JQuery UI提供的API极大简化了拖拽功能的开发.只需要分别在拖拽源(source)和目标(target)上调用draggable和droppable两个函数即可. 拖拽原理 首先要明确几个概念 ...
- RCP:拖拽功能的实现 Drag and Drop
SWT中的拖拽是使用的org.eclipse.swt.dnd. 有三个需要密切注意的类: 1.DragSource 2.DropTarget 3.Transfer DragSource封装了需要被拖拽 ...
- js实现登陆页面的拖拽功能
<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>登 ...
随机推荐
- LightOJ1422 Halloween Costumes(区间DP)
题目大概是依次有n场派对,每场派对都有需要穿某套衣服去参加,可以同时穿多套衣服,就是一套套着一套,如果脱了的话就不能再穿上那套了,问最少需要几套衣服去参加完所有派对. 区间DP: dp[i][j]第i ...
- ZOJ1232 Adventure of Super Mario(DP+SPFA)
dp[u][t]表示从起点出发,到达i点且用了t次magic boot时的最短时间, 方程如下: dp[v][t]=min(dp[v][t],dp[u][t]+dis[u][v]); dp[v][t] ...
- Web前端性能优化之图片优化
我自己的Blog:http://blog.cabbit.me/web-image-optimization/ HTTP Archieve有个统计,图片内容已经占到了互联网内容总量的62%,也就是说超过 ...
- 一人一python挑战题解
题目id: 1 just print a+b give you two var a and b, print the value of a+b, just do it!! print a+b 题目id ...
- codeforces round #201 Div2 A. Difference Row
#include <iostream> #include <vector> #include <algorithm> using namespace std; in ...
- BZOJ4260: Codechef REBXOR
Description Input 输入数据的第一行包含一个整数N,表示数组中的元素个数. 第二行包含N个整数A1,A2,…,AN. Output 输出一行包含给定表达式可能的最大值. S ...
- PTS PCR DTS 详解
一.引言 MPEG-2系统用于视音频同步以及系统时钟恢复的时间标签分别在ES,PES和TS这3个层次中.在ES层,与同步有关的主要是视频缓冲验证VBV(Video Buffer Verifier),用 ...
- 用C语言实现素数筛法获取一亿(100000000)以内的全部素数
具体筛法是:先把n个自然数按次序排列起来.1不是质数,也不是合数,要划去.第二个数2是质数留下来,而把2后面所有能被2整除的数都划去.2后面第一个没划去的数是3,把3留下,再把3后面所有能被3整除的数 ...
- [转] - JAR文件包及jar命令详解 ( MANIFEST.MF的用法 )
常常在网上看到有人询问:如何把 java 程序编译成 .exe 文件.通常回答只有两种,一种是制作一个可执行的 JAR 文件包,然后就可以像. chm 文档一样双击运行了:而另一种是使用 JET 来进 ...
- 1215课后练习----indexOf的用法
package com.hanqi; public class Testco { public static void main(String[] args) { String str1 = &quo ...