Letting you know ahead of time - drag and drop is a bit of an ass-pain in JS. There's good reason for it to be; it needs to be flexible in ways that nobody gives a damn about in the real world, in case you're reinventing the moon and need to do something in a fundamentally different way.
(Nobody actually needs that though)
For the most part I eschew library use. In this case it may be well warranted. Consider either interact.js or Sortable.
You should make a decision about #10 before you make this decision.
Letting you know ahead of time - drag and drop is a bit of an ass-pain in JS. There's good reason for it to be; it needs to be flexible in ways that nobody gives a damn about in the real world, in case you're reinventing the moon and need to do something in a fundamentally different way.
(Nobody actually needs that though)
For the most part I eschew library use. In this case it may be well warranted. Consider either interact.js or Sortable.
You should make a decision about #10 before you make this decision.