       angle
 
 
-  # Allows other methods to change the tween duration or disable it altogether.
-  _setTweening: (speed) ->
-    # To loop through the shaders, derive the correct pair from the current anchor.
-    shaderPair = if @_lastOp.anchor in anchorListV then anchorListV else anchorListH
-
-    # Loop through the panels in this anchor and set the transition duration to the new speed.
-    for panel, i in @_panels[@_lastOp.anchor]
-      panel.style[css.transitionDuration] = speed + 'ms'
-      if @_shading
-        for side in shaderPair
-          @_shaders[@_lastOp.anchor][side][i].style[css.transitionDuration] = speed + 'ms'
-
-    @
+  # Allows other methods to change the transiton duration/delay or disable it altogether.
+  _setTrans: (duration, delay) ->
+    @_iterate @_lastOp.anchor, (panel, i, len) => @_setPanelTrans arguments..., duration, delay
+
+
+  _setPanelTrans: (panel, i, len, duration, delay) ->
+    delayMs = do =>
+      switch delay
+        when 0 then 0
+        when 1 then @_settings.speed / len * (len - i - 1)
+        when 2 then @_settings.speed / len * i
+
+    panel.style[css.transitionDuration] = duration + 'ms'
+    panel.style[css.transitionDelay]    = delayMs  + 'ms'
+    if @_shading
+      for side in (if anchor in anchorListV then anchorListV else anchorListH)
+        @_shaders[anchor][side][i].style[css.transitionDuration] = duration + 'ms'
+        @_shaders[anchor][side][i].style[css.transitionDelay]    = delayMs  + 'ms'
+
+    delayMs
 
 
   # `_setShader` determines a shader's opacity based upon panel position, anchor, and angle.

    # Change the cursor to the active `grabbing` state.
    @_stageHolder.style.cursor = css.grabbing
    # Disable tweening to enable instant 1 to 1 movement.
    @_setTweening 0
    # Derive the axis to fold on.
    @_touchAxis = if @_lastOp.anchor in anchorListV then 'x' else 'y'
    # Set a reference to the last folded angle to accurately derive deltas.

      return callback?() if @isFoldedUp
      @_inTrans = @isFoldedUp = true

      @_iterate anchor, (panel, i, len) =>
        duration  = @_settings.speed
        duration /= 2 if i is 0
        delay     = @_setPanelTrans arguments..., duration, 1

        do (panel, i, delay) =>
          defer =>
