X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=js%2Fajaxupload.js;h=1c34b11b9ed87483669acd2faa0c6c62936da49d;hb=3bf7c9c7a1ef7dd7e9096765ab3efce5509970a7;hp=67c4a56fb7fb882b39f3a57f9b625a15171dbf6f;hpb=273594af62c960b5a52da5ec1cf6d6bd450415ba;p=friendica.git 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; } /**