dragndrop

html5 dragndrop

Usage no npm install needed!

<script type="module">
  import dragndrop from 'https://cdn.skypack.dev/dragndrop';
</script>

README

dragndrop

HTML5 Drag and Drop

Designed for use with browserify.

Uses jQuery, but that is by no means a necessity and should be removed ... unfortunately the projects I am using this for all have jQuery... PR welcome!

Install

npm install dragndrop --save

Usage

Markup

<ul>
  <li> bla bla bla </li>
  <li> i can be swapped or moved </li>
</ul>

<ul>
  <li> hey hey hey </li>
</ul>

<ul>
</ul>

Setup

var dragndrop = require('dragndrop')

var dropzone = require('./dropzone')

$('ul').each(function(ul) {

  // Setup the UL's as dropzones:
  dragndrop($(ul).get(0), { dropzone: dropzone })

  // Setup the LI's as draggables:
  $(ul).find('li').each(function(li) {
    dragndrop($(li).get(0), {})
  })

})

Dropzone

module.exports = {
  start: function (e) {
    console.log('started dragging', {
      card: $(e.item).data('id'),
      index: $(e.item).index(),
    })
  }
  swapped: function ($1, $2) {
    console.log('col '+this._id+' swap', $1.text().trim(), $2.text().trim());
  },
  appended: function ($el) {
    console.log('col '+this._id+'add', $el.text());
  },
  removed: function ($el) {
    console.log('col '+this._id+'remove', $el.text());
  }
  end: function (e) {
    console.log('finished dragging', {
      card: $(e.item).data('id'),
      index: $(e.item).index(),
    })
  }
}