М
Size: a a a
М
М
MZ
MZ
L
PM
L
L
const getPositionCanvas = e => {
const { x, y } = canvas.getBoundingClientRect()
return { x: e.clientX - x, y: e.clientY - y }
}
L
L
PM
L
PM
L
L
const normalizeViewPosition = () => {
const { width, height } = canvasContainer.getBoundingClientRect()
const [xMin, xMax] = [0, width - viewWidth ].sort((l, r) => l - r)
const [yMin, yMax] = [0, height - viewHeight].sort((l, r) => l - r)
viewX = Math.max(xMin, Math.min(xMax, viewX))
viewY = Math.max(yMin, Math.min(yMax, viewY))
}
L
canvasContainer
это div-обертка над конвасомL
L
L
PM
canvasContainer
это div-обертка над конвасом