JSFiddle - React, Tailwind, and code Playground

HTML

<svg id="draggable" xmlns="http://www.w3.org/2000/svg" pointer-events="none"></svg>

<div id="clickmegood">good one</div>
<div id="clickmebad">bad one</div>
<div id="dragoverhere">drag over here</div>

CSS

#draggable{
    display:none;
    position:absolute; 
    width:100px; 
    height:100px; 
    background-color: #FF0000; 
    z-index: 99999; 
    opacity: 0.3;
    pointer-events:none;
}

#clickmegood{
    display:block;
    position: absolute; 
    height:20px; 
    width:80px; 
    text-align: center;
    border: 1px solid black;
    top: 10px;
    left: 10px;
}

#clickmebad{
    display:block;
    position: absolute;
    height:20px;
    width:80px;
    text-align: center;
    border: 1px solid black;
    top: 10px;
    left: 100px;
}

#dragoverhere{
    position: absolute; 
    top:200px; 
    left: 100px;
    display:block; 
    height:100px; 
    width:100px; 
    border: 1px solid red;
    vertical-align: middle;
    line-height: 100px;
    text-align: center;
}

JavaScript

$("#clickmegood").click(function(e) {
    e.stopPropagation();
    $(document).unbind("mousemove").mousemove(function(ev) {
        $("#draggable").css({
            left: ev.pageX + 5 + 'px',
            top: ev.pageY + 5 + 'px'
        });
    });
    $("#draggable").show();
});

$("#clickmebad").click(function(e) {
    e.stopPropagation();
    $(document).unbind("mousemove").mousemove(function(ev) {
        $("#draggable").css({
            left: ev.pageX - 20 + 'px',
            top: ev.pageY - 20 + 'px'
        });
    });
    $("#draggable").show();
});

$("#dragoverhere").hover(function(e) {
    if ($("#draggable").is(":visible")) {
        $(this).css("border", "1px dotted green");
    }
}, function() {
    $(this).css("border", "");
});

$(document).click(function() {
    $(document).unbind("mousemove");
    $("#draggable").hide();
})