Please note, this is a STATIC archive of website developer.mozilla.org from 03 Nov 2016, cach3.com does not collect or store any user information, there is no "phishing" involved.

Revision 981269 of Canvas

  • URL ревизии: Web/API/Canvas_API
  • Заголовок ревизии: Canvas
  • ID ревизии: 981269
  • Создано:
  • Автор: MuradAz
  • Это текущая ревизия? Нет
  • Комментарий
Метки: 

Содержание ревизии

{{CanvasSidebar}}

Элемент {{HTMLElement("canvas")}} – это HTML-элемент, который может использоваться для рисования графики с помощью скриптов (обычно это 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 графику на вебстраницах.

Пример

Это простой пример кода, который использует данный {{domxref("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);

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

{{ EmbedLiveSample('Playable_code', 700, 360) }}

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

  • {{domxref("HTMLCanvasElement")}}
  • {{domxref("CanvasRenderingContext2D")}}
  • {{domxref("CanvasGradient")}}
  • {{domxref("CanvasPattern")}}
  • {{domxref("ImageBitmap")}}
  • {{domxref("ImageData")}}
  • {{domxref("TextMetrics")}}
  • {{domxref("Path2D")}} {{experimental_inline}}

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

Руководства

Canvas tutorial
A comprehensive tutorial covering both the basic usage of and its advanced features.
Code snippets: Canvas
Some extension developer-oriented code snippets involving .
Demo: A basic ray-caster
A demo of ray-tracing animation using canvas.
Drawing DOM objects into a canvas
How to draw DOM content, such as HTML elements, into a canvas.
Manipulating video using canvas
Combining {{HTMLElement("video")}} and {{HTMLElement("canvas")}} to manipulate video data in real time.

Ресурсы

Основное

Библиотеки

  • Fabric.js это canvas библиотека с открытым исходным кодом с возможностями SVG парсинга.
  • Kinetic.js это canvas библиотека с открытым исходным кодом сосредаточенная на интерактивности для настольных и мобильных приложений.
  • Paper.js это программируемые фреймворк векторной графики с открытым исходным кодом который запускается на HTML5 Canvas.
  • libCanvas is powerful and lightweight canvas framework.
  • Processing.js is a port of the Processing visualization language.
  • PlayCanvas is an open source game engine.
  • Pixi.js is an open source game engine.
  • PlotKit is a charting and graphing library.
  • Rekapi is an animation key-framing API for Canvas.
  • PhiloGL is a WebGL framework for data visualization, creative coding and game development.
  • JavaScript InfoVis Toolkit creates interactive 2D Canvas data visualizations for the Web.

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

Specification Status Comment
{{SpecName('HTML WHATWG', "the-canvas-element.html", "Canvas")}} {{Spec2('HTML WHATWG')}}  

См.также

Источник ревизии

<div>{{CanvasSidebar}}</div>

<p class="summary">Элемент {{HTMLElement("canvas")}} –&nbsp;это <a href="/en-US/docs/HTML" title="HTML">HTML</a>-элемент, который может использоваться для рисования графики с помощью скриптов (обычно это <a href="/en-US/docs/JavaScript" title="JavaScript">JavaScript</a>). Например, он может использоваться для рисования графиков, создания&nbsp;фотокомпозиций и&nbsp;анимаций&nbsp;или даже обработки&nbsp;видео в реальном&nbsp;времени.</p>

<p>Canvas - в перевод с английского означает холст.</p>

<p>Приложения от Mozilla поддерживают <code>&lt;canvas&gt;</code> начиная с Gecko 1.8 (т.е. <a href="/en-US/docs/Firefox_1.5_for_developers" title="Firefox_1.5_for_developers">с Firefox 1.5</a>). Этот элемент первоначально был внедрен Apple для OS X <a class="external" href="https://www.apple.com/macosx/features/dashboard/">Dashboard</a> и Safari. Internet Explorer поддерживает<code> &lt;canvas&gt;</code> начиная с 9 версии и новее; для более ранних версий IE&nbsp;поддержку для &lt;canvas&gt; можно добавить с помощью скрипта из проекта Google's <a class="external" href="https://excanvas.sourceforge.net/">Explorer Canvas</a>. Google Chrome и Opera 9 также поддерживают <code>&lt;canvas&gt;</code>.</p>

<p>Элемент <code>&lt;canvas&gt;</code> также используется технологией <a href="/en-US/docs/WebGL" title="WebGL">WebGL</a> чтобы аппаратно ускорять 3D графику на вебстраницах.</p>

<h2 id="Пример">Пример</h2>

<p>Это простой пример кода, который использует данный&nbsp;{{domxref("CanvasRenderingContext2D.fillRect()")}} метод.</p>

<h3 id="HTML">HTML</h3>

<pre class="brush: html">
&lt;canvas id="canvas"&gt;&lt;/canvas&gt;
</pre>

<h3 id="JavaScript">JavaScript</h3>

<pre class="brush: js">
var canvas = document.getElementById("canvas");
var ctx = canvas.getContext("2d");

ctx.fillStyle = "green";
ctx.fillRect(10, 10, 100, 100);
</pre>

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

<div class="hidden">
<h6 id="Playable_code">Playable code</h6>

<pre class="brush: html">
&lt;canvas id="canvas" width="400" height="200" class="playable-canvas"&gt;&lt;/canvas&gt;
&lt;div class="playable-buttons"&gt;
&nbsp; &lt;input id="edit" type="button" value="Edit" /&gt;
&nbsp; &lt;input id="reset" type="button" value="Reset" /&gt;
&lt;/div&gt;
&lt;textarea id="code" class="playable-code"&gt;
ctx.fillStyle = "green";
ctx.fillRect(10, 10, 100, 100);&lt;/textarea&gt;</pre>

<pre class="brush: js">
var canvas = document.getElementById("canvas");
var ctx = canvas.getContext("2d");
var textarea = document.getElementById("code");
var reset = document.getElementById("reset");
var edit = document.getElementById("edit");
var code = textarea.value;

function drawCanvas() {
  ctx.clearRect(0, 0, canvas.width, canvas.height);
  eval(textarea.value);
}

reset.addEventListener("click", function() {
  textarea.value = code;
  drawCanvas();
});

edit.addEventListener("click", function() {
  textarea.focus();
})

textarea.addEventListener("input", drawCanvas);
window.addEventListener("load", drawCanvas);
</pre>
</div>

<p>{{ EmbedLiveSample('Playable_code', 700, 360) }}</p>

<h2 id="Справочные_материалы">Справочные материалы</h2>

<div class="index">
<ul>
 <li>{{domxref("HTMLCanvasElement")}}</li>
 <li>{{domxref("CanvasRenderingContext2D")}}</li>
 <li>{{domxref("CanvasGradient")}}</li>
 <li>{{domxref("CanvasPattern")}}</li>
 <li>{{domxref("ImageBitmap")}}</li>
 <li>{{domxref("ImageData")}}</li>
 <li>{{domxref("TextMetrics")}}</li>
 <li>{{domxref("Path2D")}} {{experimental_inline}}</li>
</ul>
</div>

<p>Интерфейсы, связанные с WebGLRenderingContext ссылаются под&nbsp;<a href="/en-US/docs/Web/WebGL" title="/en-US/docs/Web/WebGL">WebGL</a>.</p>

<h2 class="Documentation" id="Documentation" name="Documentation">Руководства</h2>

<dl>
 <dt><a href="/en-US/docs/Web/API/Canvas_API/Tutorial">Canvas tutorial</a></dt>
 <dd>A comprehensive tutorial covering both the basic usage of and its advanced features.</dd>
 <dt><a href="/en-US/Add-ons/Code_snippets/Canvas">Code snippets: Canvas</a></dt>
 <dd>Some extension developer-oriented code snippets involving .</dd>
 <dt><a href="/en-US/docs/Web/API/Canvas_API/A_basic_ray-caster">Demo: A basic ray-caster</a></dt>
 <dd>A demo of ray-tracing animation using canvas.</dd>
 <dt><a href="/en-US/docs/Web/API/Canvas_API/Drawing_DOM_objects_into_a_canvas">Drawing DOM objects into a canvas</a></dt>
 <dd>How to draw DOM content, such as HTML elements, into a canvas.</dd>
 <dt><a href="/en-US/docs/Web/API/Canvas_API/Manipulating_video_using_canvas">Manipulating video using canvas</a></dt>
 <dd>Combining {{HTMLElement("video")}} and {{HTMLElement("canvas")}} to manipulate video data in real time.</dd>
</dl>

<h2 class="Resources" id="Resources" name="Resources">Ресурсы</h2>

<h3 id="Основное">Основное</h3>

<ul>
 <li><a href="https://joshondesign.com/p/books/canvasdeepdive/title.html">HTML5 Canvas Deep Dive</a></li>
 <li><a href="https://bucephalus.org/text/CanvasHandbook/CanvasHandbook.html">Canvas Handbook</a></li>
</ul>

<h3 class="Libraries" id="Libraries" name="Libraries">Библиотеки</h3>

<ul>
 <li><a href="https://fabricjs.com">Fabric.js</a>&nbsp;это canvas&nbsp;библиотека с открытым исходным кодом&nbsp;с возможностями&nbsp;SVG парсинга.</li>
 <li><a href="https://github.com/ericdrowell/KineticJS">Kinetic.js</a> это canvas&nbsp;библиотека с открытым исходным кодом сосредаточенная на интерактивности для настольных и мобильных приложений.</li>
 <li><a href="https://paperjs.org/">Paper.js</a>&nbsp;это программируемые фреймворк векторной графики с&nbsp;открытым исходным кодом&nbsp;который запускается на&nbsp;HTML5 Canvas.</li>
 <li><a href="https://libcanvas.github.com/">libCanvas</a> is powerful and lightweight canvas framework.</li>
 <li><a href="https://processingjs.org">Processing.js</a> is a port of the Processing visualization language.</li>
 <li><a href="https://playcanvas.com/">PlayCanvas</a> is an open source game engine.</li>
 <li><a href="https://www.pixijs.com/">Pixi.js</a> is an open source game engine.</li>
 <li><a href="https://www.liquidx.net/plotkit/">PlotKit</a> is a charting and graphing library.</li>
 <li><a class="link-https" href="https://github.com/jeremyckahn/rekapi">Rekapi</a> is an animation key-framing API for Canvas.</li>
 <li><a href="https://senchalabs.github.com/philogl/">PhiloGL</a> is a WebGL framework for data visualization, creative coding and game development.</li>
 <li><a href="https://thejit.org/">JavaScript InfoVis Toolkit</a> creates interactive 2D Canvas data visualizations for the Web.</li>
</ul>

<h2 id="Specifications" name="Specifications">Спецификации</h2>

<table class="standard-table">
 <thead>
  <tr>
   <th scope="col">Specification</th>
   <th scope="col">Status</th>
   <th scope="col">Comment</th>
  </tr>
 </thead>
 <tbody>
  <tr>
   <td>{{SpecName('HTML WHATWG', "the-canvas-element.html", "Canvas")}}</td>
   <td>{{Spec2('HTML WHATWG')}}</td>
   <td>&nbsp;</td>
  </tr>
 </tbody>
</table>

<h2 id="See_also">См.также</h2>

<ul>
 <li><a href="/en-US/docs/Web/WebGL">WebGL</a></li>
</ul>
Вернуть эту версию