Sha256: 7dcd65ee1b4496c039af9dec59570c49bd35ff5256d469790f0e2308aa54deac
Contents?: true
Size: 1.04 KB
Versions: 271
Compression:
Stored size: 1.04 KB
Contents
/** * Get the scroll position of given element * @method getScroll * @memberof axe.utils * @param {Element} node * @param {buffer} (Optional) allowed negligence in overflow * @returns {Object | undefined} */ axe.utils.getScroll = function getScroll(elm, buffer = 0) { const overflowX = elm.scrollWidth > elm.clientWidth + buffer; const overflowY = elm.scrollHeight > elm.clientHeight + buffer; /** * if there is neither `overflow-x` or `overflow-y` * -> return */ if (!(overflowX || overflowY)) { return; } const style = window.getComputedStyle(elm); const overflowXStyle = style.getPropertyValue('overflow-x'); const overflowYStyle = style.getPropertyValue('overflow-y'); const scrollableX = overflowXStyle !== 'visible' && overflowXStyle !== 'hidden'; const scrollableY = overflowYStyle !== 'visible' && overflowYStyle !== 'hidden'; /** * check direction of `overflow` and `scrollable` */ if ((overflowX && scrollableX) || (overflowY && scrollableY)) { return { elm, top: elm.scrollTop, left: elm.scrollLeft }; } };
Version data entries
271 entries across 271 versions & 1 rubygems