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