Раньше я бегала эту JavaScript, чтобы изменить ширину моего холста элемента к высоте окна:Динамически ширину холста точно равняться высоте без масштабирования Distoration
let board = document.getElementById("board");
function resize() {
// Our canvas must cover full height of screen
// regardless of the resolution
var height = window.innerHeight;
// So we need to calculate the proper scaled width
// that should work well with every resolution
var ratio = board.width/board.height;
var width = height * ratio;
board.style.width = width+'px';
board.style.height = height+'px';
window.display.w = width;
window.display.h = height;
}
window.addEventListener('load', resize, false);
window.addEventListener('resize', resize, false);
С тех пор мои требования к проектированию эволюционировали для того чтобы потребовать дополнительные холсты по обе стороны от этого. Таким образом, я добавил
<center>
<div class="container">
<canvas id="info" class="panel"></canvas>
<canvas id="board" class="panel"></canvas>
<canvas id="actions" class="panel"></canvas>
</div>
и теперь мои холсты рисуют искаженные с вытянутой высотой. Я пытаюсь сделать 5 строк программно в коде холста, и показано только 3.
.container {
display:flex;
height:100vh;
align-items:flex-start;
flex-grow: 0;
}
.panel {
display:flex;
}
#board {
width:50%;
height:100vh;
background:#9b59b6;
}
#info {
width:25%;
height:100%;
background:#3498db;
}
#actions {
width:25%;
height:100%;
background:#1abc9c;
}
Как использовать Flexbox назначить ширину моего board
холста элемента таким образом, что он не будет растягиваться рисунок?
Раньше мой рисунок был такой шкале:
Я также попытался установить ширину платы в 100vh и результат не выглядит сильно отличается.
aha! display.w и display.h - это то, что я использовал для рисования. Так что мне кажется, что мне нужно будет масштабировать ширину и высоту. – quantumpotato
@quantumpotato это просто означает, что вам нужно получить правильную высоту из другого места (например, родительский элемент), но, несмотря на это, главное, размер растрового изображения должен быть установлен для холста. Следующая проблема - использовать правильные размеры ... – K3N
обновленный комментарий, спасибо! теперь устанавливаются ширина и высота растрового изображения. Теперь я работаю над исправлением масштабирования фактического рисунка растрового изображения. – quantumpotato