generic low-level click and drag utility for DOM events
Last updated 6 years ago by mattdesl .
MIT · Repository · Bugs · Original npm · Tarball · package.json
$ cnpm install clickdrag 
SYNC missed versions from official npm registry.



Generic low-level click and drag utility for DOM events. Normalizes mouse and touch events and handles clicking outside of the element.

var drag = require('clickdrag')(element, { touch: true })

drag.on('start', startHandler) //touchstart / mousedown
drag.on('move', moveHandler)   //touchmove / mousemove + move outside
drag.on('end', stopHandler)    //touchend / mouseup + up outside



drag = clickdrag(element[, options])

Creates a new draggable emitter for the given element.


  • parent the element or document to attach mouse outside events, defaults to document
  • touch whether to listen for touchstart, touchend, touchmove and emit the normalized start, move, and end events. Defaults to false (i.e. mouse events only).


Boolean, default true. If set to false, events will be ignored.


The element passed into the constructor.


Disposes the listeners, removing them from the DOM elements, and removing references to element.





The start (mousedown), move (mousemove and mousemove outside), and end (mouseup and mouseup outside) events.

Each is emitted with the parameters (event, offset, delta). The event is the original MouseEvent. The offset is an object with x and y values, relative to the element you passed at constructor. The delta has x and y delta from where the drag start originated (for start events it will be {0, 0}).

Note: Keep in mind that the MouseEvent's target may not match the element passed to the constructor, since the mousemove/mouseup events need to be triggered on its parent (or the document).


MIT, see for details.

Current Tags

  • 2.0.1                                ...           latest (6 years ago)

5 Versions

  • 2.0.1                                ...           6 years ago
  • 2.0.0                                ...           6 years ago
  • 1.1.1                                ...           6 years ago
  • 1.1.0                                ...           6 years ago
  • 1.0.0                                ...           6 years ago
Maintainers (1)
Today 0
This Week 0
This Month 1
Last Day 0
Last Week 0
Last Month 3
Dependencies (5)
Dev Dependencies (3)

Copyright 2014 - 2017 © |