Make a list or items in a container Sortable!
$('#container-vertical .item').sortable({ flow: 'vertical', // vertical, horizontal, v-flow, h-flow container: $('#container-vertical'), // items' parent as default wrapWidth: 'auto', wrapHeight: 'auto', wrapPadding: [10, 10, 0, 0], // support [top, side, bottom], [vertical, horizontal], [all] format elWidth: 'auto', elHeight: 'auto', elMargin: [0, 0, 10, 10], timeout: 300, // the time delay when placeholder move. 100ms as default filter: function (index) {return index !== 3;} // use to exclude items handle mouse/touch event });
#container-vertical { position: relative; padding: 10px 10px 0 0; width: 400px; ... } #container-vertical .item { position: absolute; height: 40px; line-height: 40px; margin: 0 0 10px 10px; padding: 0; ... }
var dataVertical = $('#container-vertical .item').sortable({ flow: 'vertical', wrapPadding: [10, 10, 0, 0], elMargin: [0, 0, 10, 10], elWidth: 200 }); $('#btn-vertical').click(function (e) { $('#result-vertical').text('Order: ' + dataVertical.getOrder()); });
#container-horizontal { height: 60px; } #container-horizontal .item { width: 40px; }
$('#container-horizontal .item').sortable({ flow: 'horizontal', wrapPadding: [10, 10, 0, 0], elMargin: [0, 0, 10, 10], elHeight: 'auto', filter: function (index) {return index !== 2;}, timeout: 1000 });
#container-v-flow { height: 110px; } #container-v-flow .item { width: 40px; height: 40px; }
$('#container-v-flow .item').sortable({ flow: 'v-flow', wrapPadding: [10, 10, 0, 0], elMargin: [0, 0, 10, 10] });
#container-h-flow { width: 200px; } #container-h-flow .item { width: 40px; height: 40px; line-height: 40px; }
$('#container-h-flow .item').sortable({ flow: 'h-flow', wrapPadding: [10, 10, 0, 0], elMargin: [0, 0, 10, 10], elWidth: 80, elHeight: 80 });