Тег <canvas>
Описание
Тег <canvas>
создает область для рисования с помощью JavaScript. Это растровый холст, на котором можно динамически генерировать графику, анимации и игры.
<canvas id="myCanvas" width="300" height="150"> Ваш браузер не поддерживает canvas. </canvas>
<script>
const canvas = document.getElementById('myCanvas');
const ctx = canvas.getContext('2d');
ctx.fillStyle = 'red';
ctx.fillRect(10, 10, 100, 50);
</script>
<canvas id="drawCanvas" width="400" height="200"></canvas>
<script>
const canvas = document.getElementById('drawCanvas');
const ctx = canvas.getContext('2d');
// Рисуем круг
ctx.beginPath();
ctx.arc(100, 75, 50, 0, 2 * Math.PI);
ctx.stroke();
// Рисуем текст
ctx.font = '20px Arial';
ctx.fillText('Пример Canvas', 180, 100);
</script>
<canvas id="animCanvas" width="300" height="150"></canvas>
<script>
const canvas = document.getElementById('animCanvas');
const ctx = canvas.getContext('2d');
let x = 0;
function animate() {
ctx.clearRect(0, 0, canvas.width, canvas.height);
ctx.fillRect(x, 50, 50, 50);
x += 1;
if (x > 250) x = 0;
requestAnimationFrame(animate);
}
animate();
</script>
Ключевые особенности:
- Требует JavaScript для работы
- Поддерживает 2D и 3D-рендеринг (WebGL)
- Атрибуты width/height определяют размеры холста
- Содержимое внутри тега отображается при отсутствии поддержки
- Можно сохранить изображение с холста (toDataURL)
Основные методы 2D-контекста:
fillRect()
,strokeRect()
- прямоугольникиbeginPath()
,stroke()
- пути и линииarc()
- круги и дугиdrawImage()
- отрисовка изображений
Тег <canvas>
открывает широкие возможности для создания интерактивной графики прямо в браузере.
Атрибуты
height | Высота |
width | Ширина |
accesskey | Горячая клавиша |
class | CSS-класс |
contenteditable | Редактируемость |
data-* | Пользовательские данные |
dir | Направление текста |
hidden | Скрытие |
id | Идентификатор |
lang | Язык |
spellcheck | Проверка орфографии |
style | Инлайновые стили |
tabindex | Порядок перехода |
title | Подсказка |
translate | Перевод |
Поддержка браузерами
![]() |
![]() |
![]() |
![]() |
![]() |
---|---|---|---|---|
9.0 | 6.0 | 9.6 | 4.0 | 3.1 |