     # These properties record starting angles for touch/drag events.
     # Initialize both to zero.
     [@_xLast, @_yLast] = [0, 0]
+    # This property determines the effect used during touch/drag events.
+    @lastOp = method: 'accordion', options: {}
 
     # Cache a jQuery object of the element if applicable.
     @$el = $ @el if $

  forceAntialiasing: false
  # Allow the user to fold the target by dragging a finger or the mouse.
  touchEnabled: true
  # Transformation effect to perform when touching/dragging.
  # Use any of the public effect methods.
  touchEffect: 'accordion'
  # Coefficient of touch/drag action's distance delta. Higher numbers cause more movement.
  touchSensitivity: .25
  # Custom callbacks for touch/drag events. Each one is invoked with a relevant value so they can

    # Calculate distance and multiply by `touchSensitivity`.
    distance = (current - @["_#{ @_touchAxis }1"]) * @settings.touchSensitivity

    # Calculate final delta based on starting angle, anchor, and what side of zero
    # the last operation was on.
    if @lastOp.negative
      if @lastAnchor is 'right' or @lastAnchor is 'bottom'
        delta = @["_#{ @_touchAxis }Last"] - distance
      else
        delta = @["_#{ @_touchAxis }Last"] + distance
      delta = 0 if delta > 0
    else
      if @lastAnchor is 'right' or @lastAnchor is 'bottom'
        delta = @["_#{ @_touchAxis }Last"] + distance
      else
        delta = @["_#{ @_touchAxis }Last"] - distance
      delta = 0 if delta < 0

    # Invoke the effect method with the delta as an angle argument.
    @[@lastOp.method] delta, @lastAnchor, @lastOp.options
    # Pass the delta to the movement callback.
    @settings.touchMoveCallback delta

