JSFiddle - React, Tailwind, and code Playground
HTML
<div class="main">
<div class="main_area">
<div class="block free"></div>
<div class="block free"></div>
<div class="block free"></div>
<div class="block free"></div>
<div class="block free"></div>
<div class="block free"></div>
<div class="block free"></div>
<div class="block free"></div>
<div class="block free"></div>
<div class="block free"></div>
<div class="block free"></div>
<div class="block free"></div>
</div>
</div>
<div class="main">
<div class="main_area">
<div class="block 1">
<div class="my_block">1</div>
</div>
<div class="block 1">
<div class="my_block">2</div>
</div>
<div class="block 1">
<div class="my_block">3</div>
</div>
<div class="block 1">
<div class="my_block">4</div>
</div>
<div class="block 1">
<div class="my_block">5</div>
</div>
</div>
</div>
CSS
.main {
width:600px;
height:200px;
border:1px solid red;
background-color: #868686;
}
.main_area {
max-width:600px;
position: absolute;
}
.block {
width:50px;
height:50px;
border:1px solid black;
float: left;
position: relative;
}
.my_block {
z-index: 105;
width:46px;
height:46px;
float: left;
position: relative;
border:1px solid red;
}
JavaScript
$(function() {
$('.my_block').draggable({
revert: "invalid",
});
$('.free').droppable({
accept: ".my_block",
drop: function(ev, ui) {
$(this).removeClass("free");
$(this).addClass("1");
ui.draggable.appendTo($(this)).removeAttr('style');
$(this).droppable("disable");
},
out: function(ev, ui) {
$(this).droppable("enable");
$(this).removeClass("1");
$(this).addClass("free");
},
});
});