anchor.diff:    }
     
     /**
  -   * Caches the margins of [avatar].
  -   */
  -  void _cacheMargins() {
  +   * Caches the [marginLeft] and [marginTop] of [avatar]. Call this method 
  +   * again if those margins changed.
  +   */
  +  void cacheMargins() {
       // Calculate margins.
  -    var marginEdge = avatar.marginEdge;
  -    var borderEdge = avatar.borderEdge;
  -    
  -    _marginTop = borderEdge.top - marginEdge.top;
  -    _marginLeft = borderEdge.left - marginEdge.left;
  +    var computedStyles = avatar.getComputedStyle();
  +    _marginLeft = num.parse(computedStyles.marginLeft.replaceFirst('px', ''), 
  +        (s) => 0);
  +    _marginTop = num.parse(computedStyles.marginTop.replaceFirst('px', ''), 
  +        (s) => 0);
     }
   }
   
  
positive.code:   /// Returns the (cached) top margin of [avatar].
    num get marginTop {
      if (_marginTop == null) {
        _cacheMargins();
      }
      return _marginTop;
    }
  
negative.code:         ..attributes.remove('id')
          ..style.cursor = 'inherit';
      
      // Ensure avatar has an absolute position.
      avatar.style.position = 'absolute';
      avatar.style.zIndex = '100';
      
      // Set the initial position of avatar.
      setLeftTop(draggable.documentOffset);
      
      // Set pointer-events to none.
      setPointerEventsNone();
  