tui-code-snippet
Version:
TOAST UI Utility: CodeSnippet
40 lines (32 loc) • 1.06 kB
JavaScript
/**
* @fileoverview Get mouse position from mouse event
* @author NHN FE Development Lab <dl_javascript@nhn.com>
*/
;
var isArray = require('../type/isArray');
/**
* Get mouse position from mouse event
*
* If supplied relatveElement parameter then return relative position based on
* element
* @param {(MouseEvent|object|number[])} position - mouse position object
* @param {HTMLElement} relativeElement HTML element that calculate relative
* position
* @returns {number[]} mouse position
* @memberof module:domEvent
*/
function getMousePosition(position, relativeElement) {
var positionArray = isArray(position);
var clientX = positionArray ? position[0] : position.clientX;
var clientY = positionArray ? position[1] : position.clientY;
var rect;
if (!relativeElement) {
return [clientX, clientY];
}
rect = relativeElement.getBoundingClientRect();
return [
clientX - rect.left - relativeElement.clientLeft,
clientY - rect.top - relativeElement.clientTop
];
}
module.exports = getMousePosition;