 
       _e = if isTouch then e.touches[0] else e
 
-      offset = @$el.offset()
+      @offset ?= @$el.offset()
 
       @hasSlid = false
       @transform = @slideTransform
 
-      if _e.pageX - offset.left < 40
         prevView = @stack[@stack.length - 1]
         index = prevView.stack?.indexOf(prevView) - 1
 
         if index >= 0
           nextView = @views[prev.stack[index]]
+      if _e.pageX - @offset.left < 40
         else
           nextView = @stack[@stack.length - 2]
 

      _e = if isTouch then e.touches[0] else e

      if not @hasSlid
        if Math.abs(_e.pageX - @slide.offset.left - @slide.startX) > 10
          @hasSlid = true
          @slide.prev.undelegateEvents()
          @slide.next.undelegateEvents()


        @slide.ratio =
          Math.min(Math.max(
            (_e.pageX - @offset.left - @slide.startX) / @offset.width
          , 0), 1)

        @transform(@slide.prev, @slide.ratio, true)
