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:
parent
6a2a54c9be
commit
06246bb0f2
1 changed files with 22 additions and 14 deletions
|
@ -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
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in a new issue