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 по вертикали минус шапка)
|
||||||
// - Верх/Низ: высота 320px, ширина = макс (весь viewport по горизонтали)
|
// - Верх/Низ: высота 320px, ширина = макс (весь viewport по горизонтали)
|
||||||
// - Углы: ширина и высота = макс (растянуть обе оси на весь viewport)
|
// - Углы: ширина и высота = макс (растянуть обе оси на весь viewport)
|
||||||
// - Центр: текущий размер, только центрирует (не трогает размеры)
|
// - Центр: размер = 50% viewport (по ширине и высоте), центрируется
|
||||||
// Возвращает размер (экранные px) и позицию (canvas-space, прижатую к нужному краю).
|
// Возвращает размер (экранные px) и позицию (canvas-space, прижатую к нужному краю).
|
||||||
const DOCK_EDGE_SIZE = 320
|
const DOCK_EDGE_SIZE = 320
|
||||||
function computeDock (position: DockPosition, currentWidth: number, currentHeight: number) {
|
function computeDock (position: DockPosition, currentWidth: number, currentHeight: number) {
|
||||||
@@ -42,6 +42,7 @@ export default function () {
|
|||||||
position === 'bottom-left' || position === 'bottom-right'
|
position === 'bottom-left' || position === 'bottom-right'
|
||||||
const isLeftRight = position === 'center-left' || position === 'center-right'
|
const isLeftRight = position === 'center-left' || position === 'center-right'
|
||||||
const isTopBottom = position === 'top-center' || position === 'bottom-center'
|
const isTopBottom = position === 'top-center' || position === 'bottom-center'
|
||||||
|
const isCenter = position === 'center'
|
||||||
|
|
||||||
let targetW = currentWidth
|
let targetW = currentWidth
|
||||||
let targetH = currentHeight
|
let targetH = currentHeight
|
||||||
@@ -54,6 +55,9 @@ export default function () {
|
|||||||
} else if (isTopBottom) {
|
} else if (isTopBottom) {
|
||||||
targetW = maxW
|
targetW = maxW
|
||||||
targetH = DOCK_EDGE_SIZE
|
targetH = DOCK_EDGE_SIZE
|
||||||
|
} else if (isCenter) {
|
||||||
|
targetW = Math.round(maxW / 2)
|
||||||
|
targetH = Math.round(maxH / 2)
|
||||||
}
|
}
|
||||||
// canvas-units от целевого размера
|
// canvas-units от целевого размера
|
||||||
const wCanvas = targetW / zoom
|
const wCanvas = targetW / zoom
|
||||||
|
|||||||
Reference in new issue
Block a user