标签:
1、 开启拖放
事件 | 产生事件的元素 | 描述 |
dragstart | 被拖放的元素 | 开始拖放操作 |
drag | 被拖放的元素 | 拖放过程中 |
dragenter | 拖放过程中鼠标经过的元素 | 被拖放的元素开始进入本元素的范围内 |
dragover | 拖放过程中鼠标经过的元素 | 被拖放的元素正在本元素的范围内移动 |
dragleave | 拖放过程中鼠标经过的元素 | 被拖放的元素离开本元素的范围 |
drop | 拖放的目标元素 | 有其他元素被拖放到本元素中 |
dragend | 拖放的对象元素 | 拖放操作结束 |
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <script> function init(){ var source = document.getElementById(‘dragme‘); var dest = document.getElementById("text"); //拖动开始 source.addEventListener("dragstart",function(ev){ //向dataTransfer对象添加数据 var dt = ev.dataTransfer; dt.effectAllowed = "all"; //拖动元素为dt.setData("text/plain",this.id); dt.setData("text/plain","您好"); },false); //拖放结束 dest.addEventListener("dragend",function(ev){ //不执行默认处理(拒绝被拖放) ev.preventDefault(); },false); //drop:被拖放 dest.addEventListener("drop",function(ev){ //从DataTransfer对象那里取得数据 var dt = ev.dataTransfer; var text = dt.getData("text/plain"); dest.textContent += text; //不执行默认处理(拒绝被拖放) ev.preventDefault(); ev.stopPropagation(); },false); } //设置页面属性,不执行默认处理(拒绝被拖放) document.ondragover = function(e){ e.preventDefault(); } document.ondrop = function(e){ e.preventDefault(); } </script> </head> <body onload="init();"> <div id="dragme" draggable="true" style="width: 200px;border: 1px solid gray;"> 请拖放 </div> <div id="text" style="width: 200px;height: 200px;border: 1px solid gray;"> </div> </body> </html>
属性 | 描述 | 参数 |
dropEffect | 设置或返回拖放目标上允许发生的拖放行为和要显示的光标类型 |
copy 复制样式被显示
link 链接样式被显示
move 移动样式被显示
none 默认,没有鼠标样式被定义
|
effectAllowed | 设置或返回被拖动元素允许发生的拖动行为与该对象的源元素。 |
copy 选项被复制
link 选项被dataTransfer作为link方式保存
move 当放置时,对象被移动至目标对象
copylink 选项是被复制还是被作为link方式保存关键在于目标对象
linkmove 选项是被作为link方式保存还是被移动关键在于目标对象
all 所有效果都被支持
none 不支持任何效果
uninitialized 默认不能通过这个属性传递任何值
|
types | 存入数据的种类,字符串的伪数组 | |
clearData() | 清除DataTransfer对象中存放的数据,如果省略参数format,则清楚全部数据 | |
setData(format,data) | 将指定格式的数据赋值给dataTransfer对象 | 参数format定义数据的格式也就是数据的类型,data为待赋值的数据 |
getData(format,data) |
从dataTransfer对象中获取指定格式的数据 | format代表数据格式,data为数据。 |
setDragImage(Element image,long x,long y) | 用img元素来设置拖放图标(部分浏览器中可以用canvas等其他元素来设置) | element设置自定义图标,x设置图标与鼠标在水平方向上的距离,y设置图标与鼠标在垂直方向上的距离。 |
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <script> function init(){ var dragIcon = document.createElement("img"); dragIcon.src =‘https://www.baidu.com/img/bdlogo.png‘; var source = document.getElementById(‘dragme‘); var dest = document.getElementById("text"); source.addEventListener(‘dragstart‘,function(ev){ var dt = ev.dataTransfer; dt.setDragImage(dragIcon,-10,-10); dt.effectAllowed = "copy"; dt.setData("text/plain","您好"); },false); dest.addEventListener(‘dragend‘,function(ev){ ev.preventDefault(); },false); dest.addEventListener(‘dragover‘,function(){ var dt = ev.dataTransfer; dt.dropEffect = "copy"; ev.preventDefault(); },false); dest.addEventListener(‘drop‘,function(ev){ var dt = ev.dataTransfer; var text = dt.getData("text/plain"); dest.textContent +=text; ev.preventDefault(); ev.stopPropagation(); },false); } document.ondragover = function(e){ e.preventDefault(); }; document.ondrop = function(e){ e.preventDefault(); } </script> </head> <body onload="init();"> <div id="dragme" draggable="true" style="width: 200px;border: 1px solid gray;"> 请拖放 </div> <div id="text" style="width: 200px;height: 200px;border: 1px solid gray;"> </div> </body> </html>
标签:
原文地址:http://www.cnblogs.com/staven/p/4774263.html