feat: center dock = 50% of viewport (w/h)
This commit is contained in:
1 parent
837bdfbfae
commit
e57e4c18ea
1 file changed
+5
-1
+5
-1
@@ -29,7 +29,7 @@ export default function () {
|
||||
// - Лево/Право: ширина 320px, высота = макс (весь viewport по вертикали минус шапка)
|
||||
// - Верх/Низ: высота 320px, ширина = макс (весь viewport по горизонтали)
|
||||
// - Углы: ширина и высота = макс (растянуть обе оси на весь viewport)
|
||||
// - Центр: текущий размер, только центрирует (не трогает размеры)
|
||||
// - Центр: размер = 50% viewport (по ширине и высоте), центрируется
|
||||
// Возвращает размер (экранные px) и позицию (canvas-space, прижатую к нужному краю).
|
||||
const DOCK_EDGE_SIZE = 320
|
||||
function computeDock (position: DockPosition, currentWidth: number, currentHeight: number) {
|
||||
@@ -42,6 +42,7 @@ export default function () {
|
||||
position === 'bottom-left' || position === 'bottom-right'
|
||||
const isLeftRight = position === 'center-left' || position === 'center-right'
|
||||
const isTopBottom = position === 'top-center' || position === 'bottom-center'
|
||||
const isCenter = position === 'center'
|
||||
|
||||
let targetW = currentWidth
|
||||
let targetH = currentHeight
|
||||
@@ -54,6 +55,9 @@ export default function () {
|
||||
} else if (isTopBottom) {
|
||||
targetW = maxW
|
||||
targetH = DOCK_EDGE_SIZE
|
||||
} else if (isCenter) {
|
||||
targetW = Math.round(maxW / 2)
|
||||
targetH = Math.round(maxH / 2)
|
||||
}
|
||||
// canvas-units от целевого размера
|
||||
const wCanvas = targetW / zoom
|
||||
|
||||
Reference in new issue
Block a user