JSFiddle - React, Tailwind, and code Playground
by John Doe
HTML
<div class="facet-container">
<div class="left">
<label>All Facets</label>
<ul id="allFacets" class="facet-list">
<li class="facet">Facet 2</li>
<li class="facet">Facet 3</li>
<li class="facet">Facet 5</li>
</ul>
</div>
<div class="right">
<label>User Facets</label>
<ul id="userFacets" class="facet-list">
<li class="facet">Facet 1</li>
<li class="facet">Facet 4</li>
</ul>
</div>
</div>
CSS
.facet-container{
width: 330px;
}
.right {
float: right;
}
.left {
float: left;
}
p {
clear: both;
padding-top: 1em;
}
.facet-list {
list-style-type: none;
margin: 0;
padding: 0;
margin-right: 10px;
background: #eee;
padding: 5px;
width: 143px;
min-height: 1.5em;
font-size: 0.85em;
}
.facet-list li {
margin: 5px;
padding: 5px;
font-size: 1.2em;
width: 120px;
}
.facet-list li.placeholder {
height: 1.2em
}
.facet {
border: 1px solid #bbb;
background-color: #fafafa;
cursor: move;
}
.facet.ui-sortable-helper {
opacity: 0.5;
}
.placeholder {
border: 1px solid orange;
background-color: #fffffd;
}
JavaScript
$(function() {
$("#allFacets, #userFacets").sortable({
connectWith: "ul",
placeholder: "placeholder",
delay: 150
})
.disableSelection()
.dblclick( function(e){
var item = e.target;
if (e.currentTarget.id === 'allFacets') {
//move from all to user
$(item).fadeOut('fast', function() {
$(item).appendTo($('#userFacets')).fadeIn('slow');
});
} else {
//move from user to all
$(item).fadeOut('fast', function() {
$(item).appendTo($('#allFacets')).fadeIn('slow');
});
}
});
});