JSFiddle - React, Tailwind, and code Playground
HTML
<div class="draggable"></div>
<div id="droppable"></div>
<div id="block"></div>
CSS
.draggable {
border: 1px solid black;
background-color: blue;
position: absolute;
top: 10px;
left: 30px;
height: 30px;
width: 30px;
z-index: 20;
}
#droppable {
border: 1px solid black;
background-color: green;
position: absolute;
top: 100px;
left: 200px;
height: 300px;
width: 300px;
z-index: 1;
}
#block {
border: 1px solid black;
background-color: red;
position: absolute;
top: 200px;
height: 100px;
width: 100%;
z-index: 10;
}
JavaScript
$('.draggable').draggable({
revert: 'invalid'
});
$('#droppable, #block').droppable({
accept: '.draggable',
drop: function( event, ui ) {
if(!ui.draggable.data('original')){
ui.draggable.data('original',ui.draggable.draggable("option", "revert"));
}
if (this.id == 'block') {
ui.draggable.draggable({ revert: true });
} else {
ui.draggable.draggable({ revert: ui.draggable.data('original') });
}
}
});