1
0
Fork 0

getOffset() now falls back to old slower version for CSS layouts which cannot figure out bounding box widths. This fixes the photo and attachment upload buttons for some themes such as vier.

This commit is contained in:
Mats Sjöberg 2013-10-23 19:21:53 +03:00
parent 6a2a54c9be
commit 06246bb0f2

View file

@ -57,6 +57,22 @@
timeout = setTimeout(fn, 100); timeout = setTimeout(fn, 100);
}); });
} }
// Get offset adding all offsets, slow fall-back method
var getOffsetSlow = function(el){
var top = 0, left = 0;
do {
top += el.offsetTop || 0;
left += el.offsetLeft || 0;
el = el.offsetParent;
} while (el);
return {
left: left,
top: top
};
};
// Needs more testing, will be rewriten for next version // Needs more testing, will be rewriten for next version
// getOffset function copied from jQuery lib (http://jquery.com/) // getOffset function copied from jQuery lib (http://jquery.com/)
@ -78,6 +94,11 @@
var bound = body.getBoundingClientRect(); var bound = body.getBoundingClientRect();
zoom = (bound.right - bound.left) / body.clientWidth; zoom = (bound.right - bound.left) / body.clientWidth;
} }
// some CSS layouts gives 0 width and/or bounding boxes
// in this case we fall back to the slow method
if (zoom == 0 || body.clientWidth == 0)
return getOffsetSlow(el);
if (zoom > 1) { if (zoom > 1) {
clientTop = 0; clientTop = 0;
@ -92,20 +113,7 @@
}; };
}; };
} else { } else {
// Get offset adding all offsets var getOffset = getOffsetSlow;
var getOffset = function(el){
var top = 0, left = 0;
do {
top += el.offsetTop || 0;
left += el.offsetLeft || 0;
el = el.offsetParent;
} while (el);
return {
left: left,
top: top
};
};
} }
/** /**