Заставить холст заполнить всю страницу - PullRequest
21 голосов
/ 14 сентября 2010

Как я могу сделать холст на 100% шириной и высотой страницы?

Ответы [ 7 ]

36 голосов
/ 14 сентября 2010

Хорошо, у меня это работает здесь: Являются ли Google Bouncing Balls HTML5? , используя следующий CSS:

* { margin: 0; padding: 0;}

body, html { height:100%; }

#c {
    position:absolute;
    width:100%;
    height:100%;
}

Где #c - идентификатор элемента canvas.

9 голосов
/ 14 сентября 2010

Вы можете использовать эти коды без JQuery

var dimension = [document.documentElement.clientWidth, document.documentElement.clientHeight];
var c = document.getElementById("canvas");
c.width = dimension[0];
c.height = dimension[1];
5 голосов
/ 03 июля 2015

Это как-то связано с тегом <canvas>.

при создании полноэкранного холста, <canvas> вызовет полосу прокрутки, если не установлено отображение: блок.

Деталь: http://browser.colla.me/show/canvas_cannot_have_exact_size_to_fullscreen

1 голос
/ 20 мая 2018
canvas.width = window.innerWidth;
canvas.height = window.innerHeight;

может быть, так просто?

1 голос
/ 14 сентября 2010

Вы можете программно установить ширину холста + высоту:

// Using jQuery to get window width + height.
canvasObject.width = $(window).width();
canvasObject.height = $(window).height();

Я проверял это и это до тех пор, пока вы перерисовываете то, что находится на холсте, после того, как вы изменили размер, это не изменит масштабирование.

0 голосов
/ 18 сентября 2015

по моим наблюдениям это работает эффективно и дает синий оттенок


var c = document.getElementById('can');
  var ctx = canvas.getContext('2d');
  ctx.rect(0, 0, canvas.width, canvas.height);
  // add linear gradient
  var g = ctx.createLinearGradient(0, 0, c.width, c.height);
  // light blue color
  g.addColorStop(0, '#8ED6FF');   
  // dark blue color
  g.addColorStop(1, '#004CB3');
  context.fillStyle = g;
  context.fill();

<script>
var c = document.getElementById('can');
      var ctx = canvas.getContext('2d');
      ctx.rect(0, 0, canvas.width, canvas.height);

      // add linear gradient
      var g = ctx.createLinearGradient(0, 0, c.width, c.height);
      // light blue color
      g.addColorStop(0, '#8ED6FF');   
      // dark blue color
      g.addColorStop(1, '#004CB3');
      context.fillStyle = g;
      context.fill();
</scrip
html,body
{
	height:98.0%;
	width:99.5%;
}
canvas
{
	display:block;
	width:100%;
	height:100%;
}
<html>
<body>
<canvas id="can"></canvas>
</body>
  </html>
0 голосов
/ 14 сентября 2010

Это работает для вас?

<html>
  <body style="height: 100%; margin: 0;">
    <canvas style="width: 100%; height: 100%;"></canvas>
  </body>
</html>

из Заставить элемент canvas в html занять все окно?

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