每天一个JavaScript实例-html5拖拽
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>每天一个JavaScript实例-html5拖拽</title>
<style>
#drop{
width:300px;
height:200px;
background-color:#f00;
padding:5px;
border:2px solid #000;
}
#item{
width:100px;
height:100px;
background-color:#ff0;
padding:5px;
margin:20px;
border:1px solid #000;
}
*[draggable=true]{
-moz-user-select:none;
-khtml-user-drag:element;
cursor:move;
}
*:-khtml-drag{
background-color:rgba(238,238,238,0.5);
}
</style>
<script> function listenEvent(eventTarget,eventType,eventHandler){ if(eventTarget.addEventListener){
eventTarget.addEventListener(eventType,eventHandler,false); }else if(eventTarget.attachEvent){
eventType = "on" + eventType;
eventTarget.attachEvent(eventType,eventHandler); }else{
eventTarget["on" + eventType] = eventHandler; }
} //取消事件
function cancelEvent (event){
console.log("取消事件");
if(event.preventDefault){
event.preventDefault();
}else{
event.returnValue = false;
}
}
//取消传递
function cancelPropagation(event){
console.log("取消传递");
if(event.stopPropagation){
event.stopPropagation();
}else{
event.cancelBubble = true;
} }
function dragOver(evt){
console.log("拖拽进入区域");
if(evt.preventDefault)
evt.preventDefault();
evt = evt || window.event;
evt.dataTransfer.dropEffect = 'copy';
return false;
}
window.onload = function(){
console.log("程序就绪"); //console.log(target);
var item = document.getElementById("item"); item.setAttribute("draggable","true");
//console.log(item);
listenEvent(item,"dragstart",function(evt){
console.log("拖拽開始");
evt = evt || window.event;
evt.dataTransfer.effectAllowed = 'copy';
evt.dataTransfer.setData("Text",item.id); });
var target = document.getElementById("drop");
listenEvent(target,"dragenter",cancelEvent);
listenEvent(target,"dragover",dragOver);
listenEvent(target,"drop",function(evt){
console.log("drop");
cancelPropagation(evt);
evt = evt || window.event;
evt.dataTransfer.dropEffect = 'copy';
var id = evt.dataTransfer.getData("Text");
target.appendChild(document.getElementById(id));
}); }; </script>
</head> <body> <div>
<p>Drag the small yellow box with hte dash border to the larger red box with the solid border</p>
</div>
<div id = "item" draggable = "true">
</div>
<div id = "drop">
</div>
</body>
</html>
每天一个JavaScript实例-html5拖拽的更多相关文章
- HTML5拖拽功能中 dataTransfer对象详解
有了HTML5,老板再也不用担心我们的上传了,再加上有拖拽上传是不是很酷.百度一下,有关HTML5拖拽上传的文章和实例不少,都缺不了一个至关重要的东东DataTransfer.但是详细介绍的不多,尤其 ...
- Html5拖拽复制
拖拽是一种常见的特性,即抓取对象以后拖到另一个位置. 在 HTML5 中,拖拽是标准的一部分,任何元素都能够拖拽. Html5拖拽非常常见的一个功能,但是大部分拖拽的案例都是一个剪切的过程, 项目中需 ...
- HTML5 拖拽复制功能的实现方法
Internet Explorer 9FirefoxOpera 12ChromeSafari 5 v1.0代码部分 <!DOCTYPE html><html><head& ...
- day25—JavaScript实现文件拖拽上传案例实践
转行学开发,代码100天——2018-04-10 今天记录一个利用JavaScript实现文件拖拽上传到浏览器,后天将文件打开的小案例. 基本功能:1点击添加文件 2 文件拖拽添加 html: < ...
- html5拖拽实现
1.需求 做一个h5正方形的拖拽框 2.分析 使用touchstart,touchmove,touchend这3个事件实现. 需要记录的数据有三组数据,分别是下图的(x0,y0),(x1,y1),(x ...
- html5拖拽
html5拖拽一 <!DOCTYPE html> <html> <head lang="en"> <meta charset=" ...
- 每天一个JavaScript实例-从一个div元素删除一个段落
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...
- 每天一个JavaScript实例-推断图片是否载入完毕
<!doctype html> <html lang="en"> <head> <meta charset="utf-8&quo ...
- 每天一个JavaScript实例-动态省份选择城市
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...
随机推荐
- Kendo UI开发教程(20): Kendo MVVM 数据绑定(九) Text
Text绑定可以使用ViewModel来设置DOM元素的文本属性,如果需要设置input,textarea,或select的显示,需要使用value属性. 1 <span data-bind=& ...
- CButtonEx的实现
要想修改CButton类按钮背景颜色和文字颜色,必须利用自绘方法对按钮进行重新绘制.这可以通过定义一个以CButton为基类的新按钮类来实现.以下为具体的实现方法: 方法一: 加入一个新类,类名:CB ...
- c# in depth之泛型的实现
1.默认值表达式 如果已经明确了要处理的类型,也就知道了它的“默认”值.不知道要引用的类型,就不能直接指定默认值.不能使用null,因为它可能不是一个引用类型,不能使用0,因为它可能不是数值类型.虽然 ...
- 基于visual Studio2013解决面试题之0208二叉搜索树后序遍历序列
题目
- [置顶] oracle 快速查询数据库各种信息、及转换对应java代码
1 查询表中数据量 select 'select '||''''||t.TABLE_NAME||''''||' as table_name, count(*) from '|| t.TABLE_NAM ...
- goldengate 简单配置 oracle to oralce
做oracle时配置的,goldengate 是同步异构数据库最好的工具.这个是基于oracle to oracle 单向复制 添加增量复制进程 add extract process -- -- ...
- memory引擎的索引失效一例
memory引擎的索引失效一例 memory引擎的索引失效一例
- 第二章 IoC Setter注入
Setter注入又称为属性注入.是通过属性的setXXX()方法来注入Bean的属性值或依赖对象.由于Setter注入具有可选择性和灵活性高的优点,因此Setter注入是实际应用中最常用的注入方式. ...
- Effective C++:规定12:不要忘了复制的对象时,它的每一个组成部分
(一个) 继承制度的声明: class Date {...}; class Customer { public: ... private: string name; Date lastTransact ...
- Swift - 选择框(UIPickerView)的用法
1,选择框可以让用户以滑动的方式选择值.示例如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 ...