JSFiddle - React, Tailwind, and code Playground

HTML

<ol>
    <li draggable="true">aaaaaaaaaaaaaaaaaaaaaaa</li>
    <li draggable="true">bbbbbbbbbbbbbbbbbbbbbbb</li>
    <li draggable="true">ccccccccccccccccccccccc</li>
    <li draggable="true">ddddddddddddddddddddddd</li>
    <li draggable="true">eeeeeeeeeeeeeeeeeeeeeee</li>
</ol>

CSS

li:hover {
    background: #fc9;
}
li.dragover {
    background: #9cf;
}
ol {
    border: 1px solid white;
}
ol.insistent {
    border-color: red;
}
ol.insistent li:hover {
    background: transparent;
}

JavaScript

var lis = document.querySelectorAll("li"),
    ol = document.querySelector("ol"),
    dragged = false,
    dragover = false;
ol.addEventListener("drop", function(event) {
    ol.insertBefore(dragged,dragover);
    this.classList.remove("insistent");
}, false);
for (var i=0, n = lis.length; i < n; i++) {
    lis[i].addEventListener("dragstart", function(event) {
        dragged = this;
        ol.classList.add("insistent");
    }, false);
    lis[i].addEventListener("dragover", function(event) {
        if (dragover) {
            dragover.classList.remove("dragover");
        }
        event.preventDefault();
        dragover = this;
        this.classList.add("dragover");
    }, false);
}