UNPKG

@greg-md/ng-elevator

Version:

Make a container to elevate on the screen while scrolling with Angular.

31 lines (30 loc) 3.06 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes} checked by tsc */ /** * @param {?} element * @return {?} */ export function offset(element) { // Support: IE <=11 only // Running getBoundingClientRect on a // disconnected node in IE throws an error if (!element || !element.getClientRects().length) { return { top: 0, left: 0 }; } let /** @type {?} */ docElem, /** @type {?} */ rect, /** @type {?} */ doc; rect = element.getBoundingClientRect(); // Make sure element is not hidden (display: none) if (rect.width || rect.height) { doc = element.ownerDocument; docElem = doc.documentElement; return { top: rect.top + window.pageYOffset - docElem.clientTop, left: rect.left + window.pageXOffset - docElem.clientLeft }; } // Return zeros for disconnected and hidden elements (gh-2310) return rect; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxldmF0b3IudXRpbHMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZ3JlZy1tZC9uZy1lbGV2YXRvci8iLCJzb3VyY2VzIjpbImxpYi9lbGV2YXRvci51dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBLE1BQU0saUJBQWlCLE9BQW9COzs7O0lBSXpDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDakQsTUFBTSxDQUFDLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFDLENBQUM7S0FDMUI7SUFFRCxxQkFBSSxPQUFvQixtQkFBRSxJQUFnQixtQkFBRSxHQUFhLENBQUM7SUFFMUQsSUFBSSxHQUFHLE9BQU8sQ0FBQyxxQkFBcUIsRUFBRSxDQUFDOztJQUd2QyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQzlCLEdBQUcsR0FBRyxPQUFPLENBQUMsYUFBYSxDQUFDO1FBQzVCLE9BQU8sR0FBRyxHQUFHLENBQUMsZUFBZSxDQUFDO1FBRTlCLE1BQU0sQ0FBQztZQUNMLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFDLFNBQVM7WUFDdEQsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLFdBQVcsR0FBRyxPQUFPLENBQUMsVUFBVTtTQUMxRCxDQUFDO0tBQ0g7O0lBR0QsTUFBTSxDQUFDLElBQUksQ0FBQztDQUNiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIG9mZnNldChlbGVtZW50OiBIVE1MRWxlbWVudCkge1xuICAvLyBTdXBwb3J0OiBJRSA8PTExIG9ubHlcbiAgLy8gUnVubmluZyBnZXRCb3VuZGluZ0NsaWVudFJlY3Qgb24gYVxuICAvLyBkaXNjb25uZWN0ZWQgbm9kZSBpbiBJRSB0aHJvd3MgYW4gZXJyb3JcbiAgaWYgKCFlbGVtZW50IHx8ICFlbGVtZW50LmdldENsaWVudFJlY3RzKCkubGVuZ3RoKSB7XG4gICAgcmV0dXJuIHt0b3A6IDAsIGxlZnQ6IDB9O1xuICB9XG5cbiAgbGV0IGRvY0VsZW06IEhUTUxFbGVtZW50LCByZWN0OiBDbGllbnRSZWN0LCBkb2M6IERvY3VtZW50O1xuXG4gIHJlY3QgPSBlbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXG4gIC8vIE1ha2Ugc3VyZSBlbGVtZW50IGlzIG5vdCBoaWRkZW4gKGRpc3BsYXk6IG5vbmUpXG4gIGlmIChyZWN0LndpZHRoIHx8IHJlY3QuaGVpZ2h0KSB7XG4gICAgZG9jID0gZWxlbWVudC5vd25lckRvY3VtZW50O1xuICAgIGRvY0VsZW0gPSBkb2MuZG9jdW1lbnRFbGVtZW50O1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHRvcDogcmVjdC50b3AgKyB3aW5kb3cucGFnZVlPZmZzZXQgLSBkb2NFbGVtLmNsaWVudFRvcCxcbiAgICAgIGxlZnQ6IHJlY3QubGVmdCArIHdpbmRvdy5wYWdlWE9mZnNldCAtIGRvY0VsZW0uY2xpZW50TGVmdFxuICAgIH07XG4gIH1cblxuICAvLyBSZXR1cm4gemVyb3MgZm9yIGRpc2Nvbm5lY3RlZCBhbmQgaGlkZGVuIGVsZW1lbnRzIChnaC0yMzEwKVxuICByZXR1cm4gcmVjdDtcbn1cbiJdfQ==