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 [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/prototype-scriptaculous?hl=en.