anchor.diff:    void resetPointerEvents() {
       avatar.style.pointerEvents = null;
     }
  +  
  +  /**
  +   * Caches the margins of [avatar].
  +   */
  +  void _cacheMargins() {
  +    // Calculate margins.
  +    var marginEdge = avatar.marginEdge;
  +    var borderEdge = avatar.borderEdge;
  +    
  +    _marginTop = borderEdge.top - marginEdge.top;
  +    _marginLeft = borderEdge.left - marginEdge.left;
  +  }
   }
   
   
  
positive.code:    * current position. Both are relative to the whole document (page coordinates).
     */
    void dragEnd(Point startPosition, Point position);
    
    Point _lastTranslate;
    bool _updating = false;
    
    /**
     * Sets the CSS transform translate of [avatar]. Uses requestAnimationFrame
  
negative.code:     Point draggablePosition = pageOffset(draggable);
      
      // Set the initial position of avatar.
      setTopLeft(draggablePosition);
      
      // Ensure avatar has an absolute position.
      avatar.style.position = 'absolute';
  