axe-core
Version:
Accessibility engine for automated Web UI testing
39 lines (35 loc) • 1.3 kB
JavaScript
import getScrollOffset from './get-scroll-offset';
/**
* Get the coordinates of the element passed into the function relative to the document
* @method getElementCoordinates
* @memberof axe.commons.dom
* @instance
* @param {HTMLElement} element The HTMLElement
* @return {elementObj} elementObj Returns a `Object` with the following properties, which
* each hold a value representing the pixels for each of the
*/
/**
* @typedef elementObj
* @type {Object}
* @property {Number} top The top coordinate of the element
* @property {Number} right The right coordinate of the element
* @property {Number} bottom The bottom coordinate of the element
* @property {Number} left The left coordinate of the element
* @property {Number} width The width of the element
* @property {Number} height The height of the element
*/
function getElementCoordinates(element) {
var scrollOffset = getScrollOffset(document),
xOffset = scrollOffset.left,
yOffset = scrollOffset.top,
coords = element.getBoundingClientRect();
return {
top: coords.top + yOffset,
right: coords.right + xOffset,
bottom: coords.bottom + yOffset,
left: coords.left + xOffset,
width: coords.right - coords.left,
height: coords.bottom - coords.top
};
}
export default getElementCoordinates;