@dragndrop/draggable
v0.1.6
Published
Draggable component
Downloads
134
Maintainers
Readme
Draggable
Draggable uses the JavaScript to provide draggable functionality to HTML elements.
Design & API Documentation
Installation
npm install @dragndrop/draggableUsage
Draggable element can be used for different functionalities - from moving elements around to make sortable list or draggable grid elements.
CSS Classes (they can be changed)
CSS Class | Description
--- | ---
draggable--dragging | Sets this class to element when dragging
draggable--occurring | Sets this class to body element when dragging
Shadow DOM
If you want to use dragndrop in Shadow DOM you need to add draggable--retarget attribute to your host element so events will be bubble through Shoadow DOM and recursive elementFromPoint() calls will work correctly.
Draggable
The Draggable JavaScript component allows for programmatic turn on / off the draggabillity to element.
const draggableElement = document.querySelector('.draggable');
const draggable = new Draggable(draggableElement);You can also use attachTo() as an alias;
Draggable.attachTo(document.querySelector('.draggable'));Events | Type | Data | Description
--- | --- | --- | ---
onDragStart | CustomEvent | {originalEvent, dragInfo, dropzoneElement} | Event dispatched when dragging starts
onDrag | CustomEvent | {originalEvent, dragInfo, dropzoneElement} | Event dispatched when dragging
onDragEnd | CustomEvent | {originalEvent, dragInfo, dropzoneElement} | Event dispatched when dragging ends
DragInfo | Type | Description
--- | --- | ---
draggableId | Number | Id of draggable element
element | Element | Draggable element
data | Type Generic | Data attached to draggable with data property
startPosition | Point | Start position
avatar | Avatar | Avatar attached to draggable with avatar property
axis | Axis | Axis which dragging is handled 'horizontal', 'vertical' and 'both'
position | Point | Current position of cursor
shift | Point | Distance from start position to elements top-left corner
Property | Value Type | Description
--- | --- | ---
data | Generic Type | Data which is attached to draggable
draggable | Boolean | Turn on / off draggable functionality
avatar | Avatar | Element which is rendered when element is dragging
axis | Axis ('both', 'horizontal', 'vertical') | Axis the dragging is available for
handle | String | Selector on which dragging is available (children of element are included)
cancel | String | Selectors on which draggins is not available (children of element are included)
draggingClass | String | Class which is set on element when dragging (draggable--dragging default)
draggingClassBody | String | Class which is set on body element when dragging (draggable--occurring default)
minDragStartDistance | number | Min distance to start dragStart state (4 default)
touchAction | String or null | Makes touch-action property set on element when drag is started (undefined default)
customScroll | ((startPosition: Point, currentPosition: Point) => void) or boolean | Allows to specify customScroll behavior with function or when set with false prevents from custom scroll which is set by default
Method Signature | Description
--- | ---
abort() => void | Proxies to the foundation's abort method
destroy() => void | Proxies to the foundation's destroy method
DraggableFoundation
Method Signature | Description
--- | ---
| abort() => void | Abort current draggable.
| destroy() => void | Destroy all event listeners and clean up component.
