확대축소100%가운데정렬
This commit is contained in:
parent
bb775b2847
commit
984401881d
@ -489,6 +489,34 @@ export function useCanvasEvent() {
|
|||||||
viewportTransform[5] += deltaY
|
viewportTransform[5] += deltaY
|
||||||
|
|
||||||
canvas.setViewportTransform(viewportTransform)
|
canvas.setViewportTransform(viewportTransform)
|
||||||
|
|
||||||
|
// 브라우저 스크롤을 중앙으로 조정하여 전체 canvas를 모니터 중앙에 위치
|
||||||
|
const canvasElement = canvas.getElement()
|
||||||
|
const canvasRect = canvasElement.getBoundingClientRect()
|
||||||
|
|
||||||
|
// 현재 스크롤 위치
|
||||||
|
const currentScrollTop = window.pageYOffset || document.documentElement.scrollTop
|
||||||
|
const currentScrollLeft = window.pageXOffset || document.documentElement.scrollLeft
|
||||||
|
|
||||||
|
// canvas의 현재 화면 위치
|
||||||
|
const canvasScreenTop = canvasRect.top + currentScrollTop
|
||||||
|
const canvasScreenLeft = canvasRect.left + currentScrollLeft
|
||||||
|
|
||||||
|
// 모니터 중앙
|
||||||
|
const monitorCenterX = window.innerWidth / 2
|
||||||
|
const monitorCenterY = window.innerHeight / 2
|
||||||
|
|
||||||
|
// canvas가 모니터 중앙에 오도록 스크롤 위치 계산
|
||||||
|
const targetScrollLeft = canvasScreenLeft + (canvasRect.width / 2) - monitorCenterX
|
||||||
|
const targetScrollTop = canvasScreenTop + (canvasRect.height / 2) - monitorCenterY + menuHeightOffset
|
||||||
|
|
||||||
|
// 스크롤을 중앙으로 이동
|
||||||
|
window.scrollTo({
|
||||||
|
top: targetScrollTop,
|
||||||
|
left: targetScrollLeft,
|
||||||
|
behavior: 'smooth' // 부드러운 스크롤
|
||||||
|
})
|
||||||
|
|
||||||
canvas.renderAll()
|
canvas.renderAll()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user