JSFiddle - React, Tailwind, and code Playground
by mvirik
HTML
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/jquery-ui.min.js"></script>
<link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/themes/smoothness/jquery-ui.css">
<ul id="sortable">
<li class="ui-state-default">X</li>
<li class="ui-state-default">2</li>
<li class="ui-state-default pinned">X</li>
<li class="ui-state-default">4</li>
<li class="ui-state-default">5</li>
<li class="ui-state-default">6</li>
<li class="ui-state-default pinned">X</li>
<li class="ui-state-default">8</li>
<li class="ui-state-default">9</li>
<li class="ui-state-default">10</li>
<li class="ui-state-default">11</li>
<li class="ui-state-default">X</li>
</ul>
CSS
#sortable {
list-style-type: none;
margin: 0;
padding: 0;
width: 450px;
}
#sortable li {
margin: 3px 3px 3px 0;
padding: 1px;
float: left;
width: 100px;
height: 90px;
font-size: 4em;
text-align: center;
}
#sortable li.pinned {
background: red;
}
JavaScript
$(function() {
$("#sortable").sortable({
start: function () {
$(this).find(".pinned").each(function () {
$(this).data("fixedIndex", $(this).index());
});
},
change: function () {
$(this).find(".pinned").each(function () {
$(this).detach().insertAfter($("#sortable li:eq(" + ($(this).data("fixedIndex")-1) + ")"));
});
}
});
});