<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
.column {
height: 200px;
width: 200px;
float: left;
border: 2px solid black;
background-color: green;
margin-right: 5px;
text-align: center;
cursor: move;
font-size: 20px;
font-weight: 900;
color: red;
}
.column.over {
border: 3px dashed #000;
}
</style>
</head>
<body>
<div id="columns">
<div class="column" draggable="true">div1</div>
<div class="column" draggable="true">div2</div>
<div class="column" draggable="true">div3</div>
</div>
<script>
var columns = document.querySelectorAll('#columns .column');
var dragEl = null;
[].forEach.call(columns,function(column){
column.addEventListener("dragstart",domdrugstart,false);
column.addEventListener('dragenter', domdrugenter, false);
column.addEventListener('dragover', domdrugover, false);
column.addEventListener('dragleave', domdrugleave, false);
column.addEventListener('drop', domdrop, false);
column.addEventListener('dragend', domdrapend, false);
});
function domdrugstart(e) {
e.target.style.opacity = '0.5';
dragEl = this;
e.dataTransfer.effectAllowed = "move";
e.dataTransfer.setData("text/html",this.innerHTML);
}
function domdrugenter(e) {
e.target.classList.add('over');
}
function domdrugover(e) {
if (e.preventDefault) {
e.preventDefault();
}
e.dataTransfer.dropEffect = 'move';
return false;
}
function domdrugleave(e) {
e.target.classList.remove('over');
}
function domdrop(e) {
if (e.stopPropagation) {
e.stopPropagation();
}
// 位置互换
if (dragEl != this) {
dragEl.innerHTML = this.innerHTML;
this.innerHTML = e.dataTransfer.getData('text/html');
console.log(this);
}
return false;
}
function domdrapend(e) {
[].forEach.call(columns, function (column) {
column.classList.remove('over');
column.style.opacity = '1';
});
}
</script>
</body>
</html>
前端拖拽div排序
最新推荐文章于 2025-05-11 03:08:53 发布