Заставить элемент canvas в html занять все окно? - PullRequest
1 голос
/ 06 февраля 2009

вместо

<code><pre>
    <canvas id="theCanvas" width="500" height="500"></canvas>

где я указываю размер холста, есть ли способ заставить холст занимать все окно браузера?

Ответы [ 3 ]

3 голосов
/ 04 октября 2009

Когда вы создаете элемент canvas, охватывающий весь экран, вы, вероятно, захотите отслеживать события изменения размера окна. Вы можете пойти дальше и использовать стиль, основанный на процентах, но вам придется помнить, чтобы перекрашивать ваш холст каждый раз, когда окно изменяется; когда размеры элемента холста изменяются (ширина или высота), сам холст очищается и эффективно сбрасывается (политики происхождения являются исключением).

Я предлагаю вам использовать что-то вроде этого:

window.addEventListener(
  'resize', 
  function() { 
    canvas.width = window.innerWidth; 
    canvas.height = window.innerHeight; 
    MyRepaintCallback(); 
  }, 
  false);

Есть несколько соображений относительно вашей функции перекраски, выходящей за рамки этого вопроса. По крайней мере, будьте уверены, зная, что двойная буферизация, скорее всего, не даст вашему холсту мерцать между перерисовками вызовов.

3 голосов
/ 06 февраля 2009
<html>
  <body style="height: 100%; margin: 0;">
    <canvas style="width: 100%; height: 100%;"></canvas>
  </body>
</html>
0 голосов
/ 06 февраля 2009

В CSS установите ширину и высоту 100% для тегов html, body (и form if asp.net).

Однако в старых IE не работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...