Files
freeCodeCamp/guide/russian/canvas/canvas-dimensions/index.md

32 lines
2.2 KiB
Markdown
Raw Normal View History

2018-10-12 16:00:59 -04:00
---
title: Canvas Dimensions
localeTitle: Размеры холста
---
## Размеры холста
2019-03-21 18:22:06 +02:00
Атрибуты `width` и `height` будут определять размер холста. Эти атрибуты управляют размером чертежа холста, а не фактическим отображаемым размером.
2018-10-12 16:00:59 -04:00
См. [Демонстрацию размеров](https://codepen.io/alanluo/pen/jLWMmM/) [полотна](https://codepen.io/alanluo) Pen Alan Luo ( [@alanluo](https://codepen.io/alanluo) ) на [CodePen](https://codepen.io) .
2019-03-21 18:22:06 +02:00
В приведенном выше примере оба элемента `canvas` имеют одинаковые размеры, установленные через CSS. Тем не менее, в два раза больше высоты, установленной через атрибут `height` , что приводит к тому, что один и тот же прямоугольник отображается на половину высоты.
2018-10-12 16:00:59 -04:00
2019-03-21 18:22:06 +02:00
Это может вызвать проблемы, когда вы хотите создать холст с динамическим размером. Для instance вы можете сделать полноэкранный холст или использовать холст в виде миниатюры.
2018-10-12 16:00:59 -04:00
2019-03-21 18:22:06 +02:00
Чтобы размер контекста рисования соответствовал визуализированному размеру элемента `canvas` , мы должны обрабатывать его в реальном времени. Одной из распространенных практик является включение в обработчик `onResize` следующего обработчика.
2018-10-12 16:00:59 -04:00
```js
// somewhere early in the script
var canvas = document.getElementById("canvas");
...
window.addEventListener("resize", function() {
canvas.setAttribute("width", canvas.scrollWidth);
canvas.setAttribute("height", canvas.scrollHeight);
console.log(canvas.offsetWidth);
});
```
#### Дополнительная информация:
2019-03-21 18:22:06 +02:00
* [API холста MDN](https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API)