 
     sticky = fetch @key
     if sticky.stuck
-
-      [x, y] = [0, sticky.y]
-
-      if browser.is_mobile
-        positioning_method = 'absolute'
-        # When absolutely positioning, the reference is with respect to the closest
-        # parent that has been positioned. Because sticky.y is with respect to the 
-        # document, we need to adjust for the parent offset.   
-        y -= $(@getDOMNode()).offsetParent().offset().top 
-      else
-        positioning_method = 'fixed'
-
-        # Fixed positioning is relative to the viewport, not the document
-        y -= scroller.viewport_top 
-
-        # Adjust for horizontal scroll for fixed position elements because they don't 
-        # move with the rest of the content (they're fixed to the viewport). 
-        # ScrollLeft is used to offset the fixed element to simulate sticking to the window.
-        x -= $(window).scrollLeft()
+      [x, y] = [sticky.x, sticky.y]
+      positioning_method = if browser.is_mobile then 'absolute' else 'fixed'
 
       style = 
         top: 0


    if stuck.length > 0
      # Calculate y-positions for all stuck components
      y_pos = scroller.solveForY stickies

      for k in stuck
        sticky = fetch k
        sticky.y = y_pos[k].value

        if !sticky.stuck
          scroller.toggleStuck k, stickies[k]

        save sticky

    scroller.last_viewport_top = scroller.viewport_top

  ########
  # toggleStuck

  viewport_top : document.documentElement.scrollTop || document.body.scrollTop  
  last_viewport_top : document.documentElement.scrollTop || document.body.scrollTop
          # caches scroll positions at t and t-1 for use in calculations
  last_positions : {}

  #######
  # register & unregister
