1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | 1× 38× 38× 1× | const Point = require('point-geometry'); /** * Returns a Point representing a mouse event's position * relative to a containing element. * * @param {MouseEvent} mouseEvent * @param {Node} container * @returns {Point} */ function mouseEventPoint(mouseEvent, container) { const rect = container.getBoundingClientRect(); return new Point( mouseEvent.clientX - rect.left - container.clientLeft, mouseEvent.clientY - rect.top - container.clientTop ); } module.exports = mouseEventPoint; |