Элемент <canvas>, добавленный в HTML5, предназначен для создания графики с помощью JavaScript. Например, его используют для рисования графиков, создания фотокомпозиций, анимаций и даже обработки и рендеринга видео в реальном времени.

«Canvas»  в переводе с английского означает «холст».

Приложения от Mozilla поддерживают <canvas> начиная с Gecko 1.8 (т.е. с Firefox 1.5). Этот элемент первоначально был представлен Apple для OS X Dashboard и Safari. Internet Explorer поддерживает <canvas> начиная с 9 версии; для более ранних версий IE поддержку для <canvas> можно добавить с помощью скрипта из проекта Google's Explorer Canvas. Google Chrome и Opera 9 также поддерживают <canvas>.

Элемент <canvas> также используется технологией WebGL для отрисовки аппаратно-ускоренной 3D-графики на вебстраницах.

Пример

Это простой пример использования CanvasRenderingContext2D.fillRect() метода.

HTML

<canvas id="canvas"></canvas>

JavaScript

var canvas = document.getElementById("canvas");
var ctx = canvas.getContext("2d");

ctx.fillStyle = "green";
ctx.fillRect(10, 10, 100, 100);

Отредактируйте код ниже, чтобы увидеть результат на холсте.

Справочные материалы

Интерфейсы, связанные с WebGLRenderingContext, ссылаются на WebGL.

Руководства

Canvas tutorial
Подробный учебник, охватывающий как основное использование <canvas>, так и его расширенные функции.
Фрагменты кода: Canvas
Некоторые фрагменты кода, ориентированные на разработчиков, с использованием <canvas>.
Demo: A basic ray-caster
Демо анимации трассировки-лучей используя canvas.
Drawing DOM objects into a canvas
Как рисовать DOM контент, таких как HTML элементы, в canvas.
Manipulating video using canvas
Объединяет <video> и <canvas> для манипулирования видео данных в реальном времени.

Ресурсы

Основное

Библиотеки

  • Fabric.js это canvas библиотека с открытым исходным кодом с возможностями SVG парсинга.
  • Kinetic.js это canvas библиотека с открытым исходным кодом ориентированная на интерактивность для настольных и мобильных приложений.
  • Paper.js это программируемый фреймворк векторной графики с открытым исходным кодом который запускается на HTML5 Canvas.
  • libCanvas это мощный и лёгкий canvas фреймворк.
  • Processing.js является портом языка обработки визуализации.
  • PlayCanvas игровой движок с открытым исходным кодом.
  • Pixi.js игровой движок с открытым исходным кодом.
  • PlotKit библиотека создание графиков и графики.
  • Rekapi API анимации для canvas.
  • PhiloGL WebGL фреймворк для визуализации данных, для креативного написания кода и разработки игр.
  • JavaScript InfoVis Toolkit создаёт интерактивные 2D Canvas визуализации данных для интернета.

Спецификации

Спецификация Статус Комментарий
HTML Living Standard
Определение 'Canvas' в этой спецификации.
Живой стандарт  

См.также

Метки документа и участники

Внесли вклад в эту страницу: antas, ivaskonyan, MuradAz, klimov-rv, PiN, uleming, askolt, fscholz, 3bl3gamer, Neir, teoli
Обновлялась последний раз: antas,