Drag-and-Drop functionality for advanced UI development.



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


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


  • 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)

Samples! :)

// Make myElement drag-and-drop enabled

// 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
    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);