Я разрабатываю приложение для рисования и столкнулся с проблемой, которую пытался решить, но пока не нашел надежного решения:
Эскизы имеют исходное разрешение 1280 x 720, и я хотел бы изменить размер холста при открытии страницы до максимально возможного размера (с учетом размеров экрана без панели инструментов, которую я разместил в верхней части страницы), сохраняя соотношение сторон 1280 x 720 . Холст должен быть отцентрирован на экране, а все остальное будут покрыты черными полосами: когда отношение размеров окна браузера меньше исходного отношения ш / в эскиза, будут горизонтальные черные полосы (рис. 1 ). , а когда он больше, вертикальные черные полосы (рис. 2 ).
Я пробовал использовать javascript, применяя к холсту offsetWidth и offsetHeight элемента div, содержащего вспомогательный невидимый объект. изображение, которое я генерирую программно с исходными размерами эскиза, но не кажется надежным способом сделать это. В большинстве случаев свойства смещения не готовы, когда страница загружается, и мне приходится ждать их с помощью таймера (или наблюдателей мутаций).
Некоторые изображения того, что я пытаюсь сделать:
Я потратил много времени на эту мелочь, и она сводит меня с ума, потому что каждое решение, которое я нашел, слишком хакерское или ненадежное. Мы будем очень благодарны за любую помощь.
Я использую Angular + Ioni c 4.