   _onTouchStart: (e) =>
     return unless @_touchEnabled
     e.preventDefault()
+    # Set a property to track touch starts.
+    @_touchStarted = true
+    # Change the cursor to the active `grabbing` state.
+    @stageEl.style.cursor = css.grabbing
     # Disable tweening to enable instant 1 to 1 movement.
     @_setTweening false
     # Derive the axis to fold on.



  # Teardown process when touch/drag event ends.
  _onTouchEnd: (e) =>
    return unless @_touchEnabled
    # Enable tweening again.
    @_setTweening true

    # Remove movement listeners.
    @stageEl.removeEventListener 'touchmove', @_onTouchMove, false
    @stageEl.removeEventListener 'mousemove', @_onTouchMove, false

    # Pass callback final value.
    @settings.touchEndCallback @["_#{ @_touchAxis }Last"]


  # Public Methods

    else
      @["_#{ @_touchAxis }1"] = e.targetTouches[0]["page#{ @_touchAxis.toUpperCase() }"]

    # Return that value to an external listener.
    @settings.touchStartCallback @["_#{ @_touchAxis }1"]


  # Called on touch/mouse movement.
  _onTouchMove: (e) =>
    return unless @_touchEnabled and @_touchStarted
    e.preventDefault()
    # Set a reference to the current x or y position.
    if e.type is 'mousemove'
