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

Version Path
govuk_publishing_components-30.4.1 node_modules/axe-core/lib/core/utils/get-scroll.js
govuk_publishing_components-30.4.0 node_modules/axe-core/lib/core/utils/get-scroll.js
govuk_publishing_components-30.3.0 node_modules/axe-core/lib/core/utils/get-scroll.js
govuk_publishing_components-30.2.1 node_modules/axe-core/lib/core/utils/get-scroll.js
govuk_publishing_components-30.2.0 node_modules/axe-core/lib/core/utils/get-scroll.js
govuk_publishing_components-30.1.0 node_modules/axe-core/lib/core/utils/get-scroll.js
govuk_publishing_components-30.0.0 node_modules/axe-core/lib/core/utils/get-scroll.js
govuk_publishing_components-29.15.3 node_modules/axe-core/lib/core/utils/get-scroll.js
govuk_publishing_components-29.15.2 node_modules/axe-core/lib/core/utils/get-scroll.js
govuk_publishing_components-29.15.1 node_modules/axe-core/lib/core/utils/get-scroll.js
govuk_publishing_components-29.15.0 node_modules/axe-core/lib/core/utils/get-scroll.js
govuk_publishing_components-29.14.0 node_modules/axe-core/lib/core/utils/get-scroll.js
govuk_publishing_components-29.13.0 node_modules/axe-core/lib/core/utils/get-scroll.js
govuk_publishing_components-29.12.1 node_modules/axe-core/lib/core/utils/get-scroll.js
govuk_publishing_components-29.12.0 node_modules/axe-core/lib/core/utils/get-scroll.js
govuk_publishing_components-29.11.0 node_modules/axe-core/lib/core/utils/get-scroll.js
govuk_publishing_components-29.10.0 node_modules/axe-core/lib/core/utils/get-scroll.js
govuk_publishing_components-29.9.0 node_modules/axe-core/lib/core/utils/get-scroll.js
govuk_publishing_components-29.8.0 node_modules/axe-core/lib/core/utils/get-scroll.js
govuk_publishing_components-29.7.0 node_modules/axe-core/lib/core/utils/get-scroll.js