DragDrop icon indicating copy to clipboard operation
DragDrop copied to clipboard

A JavaScript micro-framework for adding drag-and-drop functionality to elements for advanced UI development

h1. DragDrop

h3. A JavaScript micro-framework for adding drag-and-drop functionality to elements for advanced UI development

Author: James Brumond Version: 0.2.3-beta

Copyright 2011 James Brumond Dual licensed under MIT and GPL

h4. Notice

The change to version 0.2.1-beta is NOT backwards compatible. Make sure to look over the samples below.

h2. Features

  • Simple and intuitive interface
  • Option to seperate the event target from the dragged element
  • Bindable dragstart/drag/dragend events
  • Option to define bounding boxes (new in version 0.2.1-beta)
  • Very lightweight (only 1.8kb minified and gzipped)

h2. Samples! :)

// Make myElement drag-and-drop enabled
DragDrop.bind(myElement);

// A more complex version
var draggable = DragDrop.bind(myElement, {
    // The anchor; myElement moves when anotherElement is dragged
    anchor: anotherElement,
    // The draggable element will now stay bound within it's offsetParent
    boundingBox: 'offsetParent',
    // Define a dragstart event
    dragstart: function(evt) {
        // ...
    }
});

// Change the bounding box to some manual positions
draggable.setBoundingBox({
    x: { min: 0, max: 600 },
    y: { min: 0, max: 400 }
});

// Define a new dragend event
draggable.bindEvent('dragend', function(evt) {
    // ...
});

// This is how you would remove a drag event (if one were defined above)
draggable.unbindEvent('drag', theBoundDragEventFunction);