<!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>

最新文章

  1. Vertica数据库常用管理命令汇总
  2. 使用tmpfs作为缓存加速缓存的文件目录
  3. C# ArcEngine创建内存图层(转载)
  4. C#的运算符重载
  5. Spring MVC详细运行流程
  6. KVM地址翻译流程及EPT页表的建立过程
  7. mongodb3 权限认证问题总结
  8. 在WHERE子句中引用取别名的列
  9. MFC下DLL编程(图解)
  10. Spring MVC 遇到的一点点问题(转)
  11. 前端:JS获取单击按钮单元格所在行的信息
  12. vs2010使用C
  13. java基础(10) -线程
  14. loadrunner录制脚本(一) ----录制脚本打不开浏览器
  15. dtNavMeshQuery::findLocalNeighbourhood m_tinyNodePool-&gt;getNode dtHashRef整数哈希 getPortalPoints dtOverlapPolyPoly2D
  16. 2018-2019-2 网络对抗技术 20165311 Exp2 后门原理与实践
  17. leveldb 学习记录(四) skiplist补与变长数字
  18. mysql问题处理记录
  19. 使用FractionSlider生成的视差幻灯效果原型
  20. import-module的注意事项与NDK_MODULE_PATH的配置

热门文章

  1. FZOJ2111:Min Number
  2. Convert QWERTY to Dvorak
  3. cocos2d-x游戏开发系列教程-编译运行我们的第一个cocos2d-x游戏程序
  4. android端从服务器抓取的几种常见的数据的处理方式
  5. POJ 1330 Nearest Common Ancestors(Tarjan离线LCA)
  6. NET Core RC2 and .NET Core SDK Preview
  7. 使用wireshark常用的过滤命令
  8. objective-C 中的内存管理解说
  9. win32多线程程序设计笔记(第二章)
  10. OMR数据查询