HTML5中实现拖放操作,至少经过如下步骤
1)设置被拖放对象元素的draggable属性设置为true
2)编写与拖放有关的事件处理代码
事件 产生事件的元素 描述
dragstart 被拖拽物体 开始拖放
dragenter 被拖拽物体开始进入区域 进入范围
dragover 拖放过程中鼠标经过的元素(包括目标对象) 正在元素上
dragleave 拖放离开时鼠标经过的元素(包括目标对象) 离开范围
drop 目标对象 被拖拽物体放下
dragend 被拖拽物体 拖放结束
事件发生的顺序: dragstart -> dragenter -> dragover ->dragleave ->drop ->dragend
如果分为两组来看:
被拖拽元素 (发生的事件) 要进入的目标元素(发生的事件)
dragstart dragenter
dragend dragover
dragleve
drop
可以学习一下W3school 的拖放 HTML5 拖放
1. 第一个小例子:做了一个删除icon 的demo
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gbk" />
<title>Demo</title>
<style>
html,body{width:100%;height:100%;}
.wrapper{ width:580px;margin:0px auto;margin-top:80px;}
ul{list-style:none;}
li{float:left;margin-right:20px;}
img{border-radius:12px;width:100px;height:100px;}
.rubbish{position:absolute;bottom:80px;background:url("drag/220839emsyf6bty8sfgrxf.png")
no-repeat;width:128px;height:128px;left:50%;margin-left:-64px;}
</style>
</head>
<body>
<div>
<ul>
<li draggable="true"><img src="drag/mzl.kcoxjsrs.png1.jpg"/></li>
<li draggable="true"><img src="drag/mzl.dgltpgis.png1.jpg"/></li>
<li draggable="true"><img src="drag/mzl.eiohimmz.png1.jpg"/></li>
<li draggable="true"><img src="drag/mzl.aiikkslk.png1.jpg"/></li>
</ul>
</div>
<div></div>
<script>
</script>
</body>
</html>
2. 利用drag & drop拖拽物体更换位置
<!DOCTYPE HTML>
<html>
<head>
<meta charset="gbk"/>
<title>Demo</title>
<style>
html,body{width:100%;height:100%;}
.wrapper{ width:500px;margin:0px auto;margin-top:80px;}
ul{list-style:none;width:500px;}
li{float:left;margin:0px 20px 20px 0px;position: relative;width:132px;height:132px;}
img{border-radius:12px;width:100px;height:100px;position: relative;-moz-user-select:none;cursor: move;}
.rubbish{position:absolute;bottom:80px;background:url("empty.png")
no-repeat;width:128px;height:128px;left:50%;margin-left:-64px;}
.hover{border:3px dashed #fff;}
</style>
</head>
<body>
<div>
<ul>
<li draggable="true"><img src="http://i1.mm-img.com/ios/78/60/786031289/mzl.kcoxjsrs.png1.jpg"/></li>
<li draggable="true"><img src="http://i1.mm-img.com/ios/88/61/886104377/mzl.dgltpgis.png1.jpg"/></li>
<li draggable="true"><img src="http://i1.mm-img.com/ios/84/1/840146800/mzl.eiohimmz.png1.jpg"/></li>
<li draggable="true"><img src="http://i1.mm-img.com/ios/83/59/835969177/mzl.aiikkslk.png1.jpg"/></li>
<li draggable="true"><img src="http://i1.mm-img.com/ios/28/17/281796108/mzl.oyxfxpvw.png1.jpg"/></li>
<li draggable="true"><img src="http://i1.mm-img.com/ios/87/85/878549709/mzl.swnecgkk.png1.jpg"/></li>
<li draggable="true"><img src="http://i1.mm-img.com/ios/78/70/787063884/mzl.pmfectba.jpg1.jpg"/></li>
<li draggable="true"><img src="http://i1.mm-img.com/ios/87/18/871809581/mzl.fbyoqfjw.png1.jpg"/></li>
<li draggable="true"><img src="http://i1.mm-img.com/ios/66/93/669390657/mzl.ekoptmtx.png1.jpg"/></li>
</ul>
</div>
<script>