React AnimeJS
Components/Draggable7 / 25

Draggable

interactionIntermediateRead the docsOpen Playground

Code

1const {
2 ref, isDragging, isGrabbed, position, progress, velocity,
3 setX, setY, reset, enable, disable, refresh,
4} = useAnimeDraggable({
5 container: containerRef.current,
6 containerPadding: 16,
7 snap: 50,
8 releaseStiffness: 120,
9 releaseDamping: 20,
10 onGrab: () => {},
11 onDrag: () => {},
12 onRelease: () => {},
13 onSnap: () => {},
14 onSettle: () => {},
15})

Physics-based drag with snap, spring release, container bounds, and programmatic controls.

Live previewOpen Playground
DraggableSnap · Spring · Controls
Idle
Drag
x:0 y:0vx:0 vy:0
Props
NameTypeDefaultDescription
containerDraggableBounds-Container element for bounds
containerPaddingnumber | number[]0Padding inside container
containerFrictionnumber0.85Friction against container bounds (0-1)
releaseStiffnessnumber80Spring stiffness on release
releaseDampingnumber20Spring damping on release
releaseMassnumber1Mass for spring physics
snapnumber | DraggableSnap-Snap interval or per-axis config
triggerstring | HTMLElement-CSS selector for drag handle
xDraggableAxisParams | boolean-X-axis config (false to disable)
yDraggableAxisParams | boolean-Y-axis config (false to disable)
dragSpeednumber1Drag movement speed multiplier
dragThresholdnumber0Min px before drag activates
velocityMultipliernumber1Release velocity multiplier
releaseEaseEasingoutQuintRelease animation easing
cursorboolean | DraggableCursorParamstrueCursor style config