Задать вопрос
@JVyacheslav

Как подстраивать размер канваса под размер страницы?

У меня есть некоторый канвас, который растянут на всю страницу. Проблема в том, что при изменении размеров страницы, мне нужно изменять и его размер. Пытался просто установить размер канваса на 100%. Он растягивается, но вместе с этим блюрится содержимое. Тогда попытался создать ивент листенер на resize, который менял размеры канваса, подстраивал под них контекст и вызывал мой метод ререндеринга (если коротко - в json хранятся объекты, которые рисуются по координатам, ничего сверхъестественного). Так канвас начал подстраиваться правильно, однако он периодически просто зависает при выполнении подобных действий (например, влево ресайзило нормально, начал вверх - завис и не отвисает, или при переходе в полноэкранный режим браузера). Пытался использовать обсервер, который отслеживает ресайз и делает аналогичные действия. Результат оказался аналогичным, а то и хуже. Собственно, вопрос, как можно всё-таки динамически изменять размеры канваса под экранные?
  • Вопрос задан
  • 190 просмотров
Подписаться 1 Простой 3 комментария
Помогут разобраться в теме Все курсы
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
  • Яндекс Практикум
    Фронтенд-разработчик расширенный
    13 месяцев
    Далее
  • Академия Эдюсон
    Fullstack-разработчик на JavaScript + ИИ
    11 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
@Collapse444
document.body.style.overflow = "hidden";
const canvas = document.querySelector("canvas");
let canResize = true;
window.addEventListener("resize", function() {
    if (canResize) {
        canvas.width = window.innerWidth;
        canvas.height = window.innerHeight;
        render();
        canResize = false;
        setTimeout(() => canResize = true, 500);
    }
});
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы