Files
videon-frontend/src/simple-flowchart/assets/utilty/position.js
2020-11-25 05:13:05 +01:00

37 lines
845 B
JavaScript

/**
* @param element {HTMLElement}
* @return {{top: number, left: number}}
*/
function getOffsetRect (element) {
let box = element.getBoundingClientRect()
let scrollTop = window.pageYOffset
let scrollLeft = window.pageXOffset
let top = box.top + scrollTop
let left = box.left + scrollLeft
return {top: Math.round(top), left: Math.round(left)}
}
/**
* @param event {MouseEvent}
* @param element {HTMLElement}
* @return {{x: number, y: number}}
*/
function getMousePosition (element, event) {
let mouseX = event.pageX || event.clientX + document.documentElement.scrollLeft
let mouseY = event.pageY || event.clientY + document.documentElement.scrollTop
let offset = getOffsetRect(element)
let x = mouseX - offset.left
let y = mouseY - offset.top
return [x, y];
}
export {
getMousePosition, getOffsetRect
}