draggy
v2.0.5
Published
Make element draggable
Readme
Draggy
Make any element draggable. Demo.
import Draggable from 'draggy';
//make an element draggable
var el = document.querySelector('.my-element');
var draggy = new Draggable(el, {
release: true,
sniper: false,
axis: 'x'
});
//bind event handler
draggy.on('drag', function () {
// ...
});Options
| Parameter | Default | Description |
|---|:---:|---|
| axis | null | Restrict movement by axis: 'x', 'y' or null. |
| pin | [0,0, selfWidth, selfHeight] | Defines a smaller area within the draggable element that stays within movement limits. Useful to restrict movement based on an inner shape rather than the full element. |
| precision | 1 | Round position to that extent, in pixels. |
| css3 | true | Use position vs translate3d to place element. The first is more precise and reliable, the second is faster. |
| release | false | Continue movement when user releases drag. |
| repeat | false | Loop movement by one of axis: 'x', 'y' or 'both'. |
| sniper | true | Slow down movement by pressing Ctrl/Cmd. |
| threshold | 0 | A movement threshold required to start drag - whether an array, number or function. |
| within | document | Restrict movement within the container. Pass 'parent' to use parent node. |
| handle | self.element | Use element or selector as a handle for drag. Clicking outside the handle is ignored. |
| cancel | undefined | Ignore dragging started on the elements matching the selector. |
| droppable | undefined | Selector, element or list of elements to detect droppable areas. For each drop element will be invoked drop, dragover and dragout events. |
Events
| Name | Description |
|---|---|
| dragstart | Drag started. Called both on element/controller. |
| threshold | Entered threshold mode. Called on controller. |
| drag | Drag iteration. Called both on element/controller. |
| track | Track movement. Called on controller. |
| release | User released drag. Called on controller. |
| dragend | Drag has completely finished. Called both on element/controller. |
| dragover | Called on self and on drop target. |
| dragout | Called on self and on drop target. |
| drop | Called on self and on drop target. |
What draggy is not
- It doesn’t do ghost move, as it is not draggable behavior and can be implemented externally.
- It doesn’t do mouse hiding on drag, as it can be done via callbacks.
- It doesn’t init itself automatically - it's up to you to decide when to create/init draggable.
- It doesn’t polyfill native draggable, as it targets to complete simple task of visual placement of element.
Alternatives
License
MIT

