This API enables the user to register when the mobile device is shaken.

Shake counts discrete shake motions. The shake gesture is defined by translating the device back-and-forth with a rapid, jerky movement.

Shake relies on the device's Accelerometer sensor.

When motion events are not available on the device, Shake events are polyfilled with swipe touch events.


var shake = new MotionStack.Shake({
  direction: "all"

shake.start(function (e) {

  if (e.shakeCount === 10) {


new MotionStack.Shake([options])

Create a new Shake instance object.

Argument Type Description
options Object Options to pass in for the new Shake instance (optional)

  • minStrength {Number}
  • Specifies the minimum strength of a shake required to be registered.

    Default: 0

  • direction {String}
  • Specifies the direction of a shake required to be registered.

    Default: all

    • all - All shakes are detected.
    • forward - Only forward shakes are detected.
    • side - Only side shakes are detected.
  • fireOnAnimationFrame {Boolean}
  • Only emit the latest event within requestAnimationFrame intervals.

    Default: false

  • source {String}
  • The source used to calculate the reported data in order of approximation. If the specified source is not available, then the next available source is used.

    • "accelerometer" accelerometer sensor.
    • "touch" touch sensor.

    Default: "accelerometer"

var shake = new MotionStack.Shake({
  direction: "all",
  minStrength: 0

Instance Methods

start(callback, [context])

Start receiving shake updates.

Argument Type Description
callback Function Callback function that receives an object as an argument

  • function(e)
  • e.shakeCount {Number}
    Total number of shakes detected since the shake instance has been started.
  • e.direction {Number}
    The direction of the detected shake is either:
    • Equal to shake.DIRECTION_FORWARD = 1
    • Equal to shake.DIRECTION_SIDE = 2
  • e.strength {Number}
    The strength of the detected shake in meters per seconds squared.
  • e.timeStamp {Number}
    The time in milliseconds when the shake event was detected.
  • e.source {String}
    The source used to calculate the reported data.

    • "accelerometer" accelerometer sensor.
    • "gyroscope" gyroscope sensor.
    • "touch" touch sensor.

context Object Context in which to invoke the callback (optional).
shake.start(function(e) {


Stop shake updates.