Vanilla drag-and-drop sortable list(s)
Features include:
- dragging and dropping between sortable and/or ordered lists (options.sort)
- three ways to handle dragging off lists:
- closest - find closest list
- cancel - return to original position before dragging
- delete - remove element from all lists
- lists that are copy-only or no-drop (options.copy and options.drop)
- custom ghost image and icon support so dragging looks nicer and isn't limited by browser
- search descendents for a className when determining where to sort or how to order (options.deepSearch)
- limit the number of elements in a sortable (options.maximum)
- robust event system based on eventemitter3 (i.e., add, remove, order, update, delete, and -pending versions of these events)
- ordered lists may be reverse ordered and ordered by a data-? setting
- dynamically add elements
- uses built in drag and drop API
I tried many of the existing drag-and-drop libraries but could not find all the features I wanted in one neat package.
new Sortable(document.getElementById('sortme'))
davidfig.github.io/sortable/jsdoc/
npm i yy-sortable
I was greatly influenced by the design of sortablejs, which was almost perfect.
MIT License
(c) 2018 YOPEY YOPEY LLC by David Figatner