console
var content = document.getElementById('content');
var items = content.querySelectorAll('div');
console.log(items);
function itemBox(itemName){
itemName.onmousedown = function(evt1){
var e = evt1 || window.event;
var cloneDiv = document.createElement('div');
cloneDiv.innerHTML = itemName.innerHTML;
cloneDiv.style.backgroundColor = getComputedStyle(itemName).backgroundColor;
cloneDiv.className = 'draging';
cloneDiv.style.top = itemName.offsetTop +'px';
cloneDiv.style.left = itemName.offsetLeft+'px'
content.appendChild(cloneDiv);
var offsetX = evt1.pageX - cloneDiv.offsetLeft;
var offsetY = evt1.pageY - cloneDiv.offsetTop;
document.onmousemove = function(evt){
var e2 = evt || window.event;
cloneDiv.style.left = evt.pageX - offsetX +'px';
cloneDiv.style.top = evt.pageY -offsetY+'px'
}
document.onmouseup = function(){
document.onmousemove = null;
var divs = content.getElementsByTagName('div');
console.log(divs.length)
var min = 800;
var minDiv = null;
for(var i=0;i<divs.length-1;i++){
var div = divs[i];
var dis = distance(cloneDiv,div);
if(dis <= min){
min = dis;
minDiv = div;
}
}
var tmpInnerHTMl = minDiv.innerHTML;
minDiv.innerHTML = itemName.innerHTML;
itemName.innerHTML = tmpInnerHTMl;
var tmpColor = getComputedStyle(minDiv).backgroundColor;
minDiv.style.backgroundColor = getComputedStyle(itemName).backgroundColor;
itemName.style.backgroundColor = tmpColor;
content.removeChild(cloneDiv)
document.onmouseup = null;
}
return false;
}
}
for(var i = 0; i < items.length; i++){
itemBox(items[i]);
}
function distance(div1,div2) {
var a = div1.offsetLeft - div2.offsetLeft;
var b = div1.offsetTop - div2.offsetTop;
var c = Math.sqrt(a*a+b*b);
return c;
}
<div id="content">
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
<div>6</div>
<div>7</div>
<div>8</div>
<div>9</div>
</div>
#content{
width: 300px;
height:300px;
margin: 0 auto;
background: #F47564;
position: relative;
}
#content div{
width: 100px;
height: 100px;
float: left;
line-height: 100px;
text-align: center;
font-size:40px;
font-weight: 900;
color: #fff;
cursor: pointer;
position: absolute;
}
#content div:nth-child(1){
background-color: #f05b72;
top:0;
left: 0;
}
#content div:nth-child(2){
background-color: #faa755;
top:0;
left:100px;
}
#content div:nth-child(3){
background-color: #2585a6;
top:0;
left: 200px;
}
#content div:nth-child(4){
background:#5ce4fd;
top:100px;
left: 0;
}
#content div:nth-child(5){
background:#f61acf;
top:100px;
left: 100px;
}
#content div:nth-child(6){
background:#3ef9bd;
top:100px;
left: 200px;
}
#content div:nth-child(7){
background:#9af93e;
top:200px;
left: 0;
}
#content div:nth-child(8){
background:#eef93e;
top:200px;
left: 100px;
}
#content div:nth-child(9){
background:#f9843e;
top:200px;
left:200px;
}
#content .draging{
position: absolute;
}