Hi there,
I think there is a problem on the method clonePosition(element,
source) :
if the element is absolute, AND his offsetParent have a scroll, then
the cloned position is wrong.

I thinks a quick fix would be something like that :

 clonePosition: function(element, source) {
    var options = Object.extend({
      setLeft:    true,
      setTop:     true,
      setWidth:   true,
      setHeight:  true,
      offsetTop:  0,
      offsetLeft: 0
    }, arguments[2] || { });

    source = $(source);
    var p = Element.viewportOffset(source), delta = [0, 0], parent =
null;

    element = $(element);

    if (Element.getStyle(element, 'position') == 'absolute') {
      parent = Element.getOffsetParent(element);
      delta = Element.viewportOffset(parent);
//#########################################"
      //BEGIN FIX HERE ==>
      delta[0] -= parent.scrollLeft;
      delta[1] -= parent.scrollTop;
      //<=== HERE IS THE FIX END
//#########################################"
    }

    if (parent == document.body) {
      delta[0] -= document.body.offsetLeft;
      delta[1] -= document.body.offsetTop;
    }

    if (options.setLeft)   element.style.left  = (p[0] - delta[0] +
options.offsetLeft) + 'px';
    if (options.setTop)    element.style.top   = (p[1] - delta[1] +
options.offsetTop) + 'px';
    if (options.setWidth)  element.style.width = source.offsetWidth +
'px';
    if (options.setHeight) element.style.height = source.offsetHeight
+ 'px';
    return element;
  }
};

-- 
You received this message because you are subscribed to the Google Groups 
"Prototype & script.aculo.us" group.
To post to this group, send email to prototype-scriptaculous@googlegroups.com.
To unsubscribe from this group, send email to 
prototype-scriptaculous+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/prototype-scriptaculous?hl=en.

Reply via email to