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() {
    foo();

    $('.my_block').draggable({
        revert: "invalid",
        stop: function() {
            $(this).draggable('option', 'revert', 'invalid');
        }

    });

    function foo() {
        $('.block').droppable({
            greedy: true,
            accept: ".my_block",
            // tolerance: "fit",
            drop: function(ev, ui) {
                ui.draggable.appendTo($(this)).removeAttr('style');
             }
        });
    }
    $('.my_block').droppable({
        greedy: true,
        tolerance: 'touch',
        drop: function(event, ui) {
            ui.draggable.draggable('option', 'revert', true);
        }
    });

});