axe-core
Version:
Accessibility engine for automated Web UI testing
33 lines (28 loc) • 855 B
JavaScript
/**
* Get the scroll offset of the document passed in
* @method getScrollOffset
* @memberof axe.commons.dom
* @instance
* @param {Document} element The element to evaluate, defaults to document
* @return {Object} Contains the attributes `x` and `y` which contain the scroll offsets
*/
function getScrollOffset(element) {
if (!element.nodeType && element.document) {
element = element.document;
}
// 9 === Node.DOCUMENT_NODE
if (element.nodeType === 9) {
var docElement = element.documentElement,
body = element.body;
return {
left:
(docElement && docElement.scrollLeft) || (body && body.scrollLeft) || 0,
top: (docElement && docElement.scrollTop) || (body && body.scrollTop) || 0
};
}
return {
left: element.scrollLeft,
top: element.scrollTop
};
}
export default getScrollOffset;