From: Mats Sjöberg Date: Wed, 23 Oct 2013 16:21:53 +0000 (+0300) Subject: getOffset() now falls back to old slower version for CSS layouts which cannot figure... X-Git-Url: https://git.mxchange.org/?a=commitdiff_plain;h=06246bb0f269e7f3f70ec80c030822b68eb118ca;p=friendica.git 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. --- diff --git a/js/ajaxupload.js b/js/ajaxupload.js index 67c4a56fb7..1c34b11b9e 100644 --- a/js/ajaxupload.js +++ b/js/ajaxupload.js @@ -57,6 +57,22 @@ 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 // getOffset function copied from jQuery lib (http://jquery.com/) @@ -78,6 +94,11 @@ var bound = body.getBoundingClientRect(); 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) { clientTop = 0; @@ -92,20 +113,7 @@ }; }; } else { - // Get offset adding all offsets - 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 - }; - }; + var getOffset = getOffsetSlow; } /**