aboutsummaryrefslogtreecommitdiff
path: root/files/zh-cn/web/api/htmlcanvaselement/index.html
blob: 75396fc50cc3d90b01100b98215909c98b90405c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
---
title: HTMLCanvasElement
slug: Web/API/HTMLCanvasElement
translation_of: Web/API/HTMLCanvasElement
---
<p>{{APIRef("Canvas API")}}</p>

<p><code><strong>HTMLCanvasElement</strong></code>接口提供用于操纵{{HtmlElement("canvas")}}元素的布局和表示的属性和方法。 <code><strong>HTMLCanvasElement</strong></code>接口还继承了{{domxref("HTMLElement")}}接口的属性和方法。</p>

<p>{{InheritanceDiagram(600, 120)}}</p>

<h2 id="属性">属性</h2>

<p><em>从其父项{{domxref("HTMLElement")}}继承属性。</em></p>

<dl>
 <dt>{{domxref("HTMLCanvasElement.height")}}</dt>
 <dd>是一个正整数,反映了{{HTMLElement("canvas")}} 元素的{{htmlattrxref("height", "canvas")}} HTML属性,以CSS像素表示。 如果未指定属性,或者将其设置为无效值(例如负数),则使用默认值150。</dd>
 <dt>{{domxref("HTMLCanvasElement.width")}}</dt>
 <dd>是一个正整数,反映了{{HTMLElement("canvas")}} 元素的{{htmlattrxref("width", "canvas")}} HTML属性,以CSS像素表示。 如果未指定属性,或者将其设置为无效值(例如负数),则使用默认值300。</dd>
 <dt>{{domxref("HTMLCanvasElement.mozOpaque")}} {{non-standard_inline}} {{deprecated_inline}}</dt>
 <dd>是反映 {{HTMLElement("canvas")}}元素的{{htmlattrxref("moz-opaque", "canvas")}} 属性的{{jsxref("Boolean")}}。 它让画布知道半透明性是否会成为一个因素。 如果画布知道没有透明感,则可以优化绘画性能。 仅基于Mozilla的浏览器支持此功能, 可以使用标准化的{{domxref("HTMLCanvasElement.getContext()", "canvas.getContext('2d', { alpha: false })")}} 代替。</dd>
 <dt>{{domxref("HTMLCanvasElement.mozPrintCallback")}}{{non-standard_inline}}</dt>
 <dd>是最初为空的函数。 Web内容可以将其设置为JavaScript函数,该函数将在打印页面时重新绘制画布时调用。 调用时,回调将传递一个实现了<a href="https://searchfox.org/mozilla-central/search?q=interface%20MozCanvasPrintState&amp;path=HTMLCanvasElement.webidl">MozCanvasPrintState</a>接口的“ printState”对象。 回调可以从printState对象获取要绘制的上下文,然后必须在完成时在其上调用done() 。 <code>mozPrintCallback</code> 的目的是在所使用打印机的分辨率下获得较高分辨率的画布渲染。 <a href="https://blog.mozilla.org/labs/2012/09/a-new-way-to-control-printing-output/">请参阅此博客文章</a></dd>
</dl>

<h2 id="方法">方法</h2>

<p><em>从其父项{{domxref("HTMLElement")}}继承方法。</em></p>

<dl>
 <dt>{{domxref("HTMLCanvasElement.captureStream()")}} {{experimental_inline}}</dt>
 <dd>返回{{domxref("CanvasCaptureMediaStream")}} ,它是对画布表面的实时视频捕获。</dd>
 <dt>{{domxref("HTMLCanvasElement.getContext()")}}</dt>
 <dd>返回画布上的绘图上下文;如果不支持上下文ID,则返回null。 绘图上下文可让您在画布上绘图。 调用getContext传入<code>"2d"</code> 可以返回一个{{domxref("CanvasRenderingContext2D")}}对象,也可以传入<code>"webgl"</code>(或<code>"experimental-webgl"</code>)返回一个{{domxref("WebGLRenderingContext")}} 对象。 此上下文仅在实现<a href="/zh-CN/docs/Web/WebGL">WebGL</a>的浏览器上可用。</dd>
 <dt>{{domxref("HTMLCanvasElement.toDataURL()")}}</dt>
 <dd>返回一个数据URL,该URL包含由类型参数指定的格式的图像(默认为<code>png</code>)。 返回的图像分辨率为96dpi。</dd>
 <dt>{{domxref("HTMLCanvasElement.toBlob()")}}</dt>
 <dd>创建一个{{domxref("Blob")}} 对象,表示canvas中包含的图像; 该文件可以由用户代理决定是否缓存在磁盘上或存储在内存中。</dd>
 <dt>{{domxref("HTMLCanvasElement.transferControlToOffscreen()")}} {{experimental_inline}}</dt>
 <dd>将控制权转移到主线程或辅助线程上的 {{domxref("OffscreenCanvas")}}对象。</dd>
 <dt>
 <h3 id="过时的方法">过时的方法</h3>
 </dt>
 <dt>{{domxref("HTMLCanvasElement.mozGetAsFile()")}} {{non-standard_inline}} {{obsolete_inline}}</dt>
 <dd>返回代表画布中包含的图像的{{domxref("File")}} 对象; 该文件是基于内存的文件,具有指定的名称。 如果未指定类型,则图像类型为image / png。</dd>
</dl>

<h2 id="事件">事件</h2>

<p>使用<code><a href="/zh-CN/docs/Web/API/EventTarget/addEventListener">addEventListener()</a></code>监听这些事件。</p>

<dl>
 <dt><code><a href="/zh-CN/docs/Web/API/HTMLCanvasElement/webglcontextcreationerror_event">webglcontextcreationerror</a></code></dt>
 <dd>如果用户代理无法创建<code>WebGLRenderingContext</code> 或<code>WebGL2RenderingContext</code> 上下文,则触发该事件。</dd>
 <dt><code><a href="/zh-CN/docs/Web/API/HTMLCanvasElement/webglcontextlost_event">webglcontextlost</a></code></dt>
 <dd>如果用户代理检测到与<code>WebGLRenderingContext</code> 或<code>WebGL2RenderingContext</code> 对象关联的绘图缓冲区已丢失,则触发此事件。</dd>
 <dt><code><a href="/zh-CN/docs/Web/API/HTMLCanvasElement/webglcontextrestored_event">webglcontextrestored</a></code></dt>
 <dd>如果用户代理为<code>WebGLRenderingContext</code> 或<code>WebGL2RenderingContext</code> 对象恢复绘图缓冲区,则触发该事件。</dd>
</dl>

<h2 id="规范">规范</h2>

<table>
 <tbody>
  <tr>
   <th scope="col">Specification</th>
   <th scope="col">Status</th>
   <th scope="col">Comment</th>
  </tr>
  <tr>
   <td>{{SpecName('HTML WHATWG', "#htmlcanvaselement", "HTMLCanvasElement")}}</td>
   <td>{{Spec2('HTML WHATWG')}}</td>
   <td>Primary definition of <code>HTMLCanvasElement</code>.</td>
  </tr>
  <tr>
   <td>{{SpecName('Media Capture DOM Elements', '#html-canvas-element-media-capture-extensions', 'HTMLCanvasElement')}}</td>
   <td>{{Spec2('Media Capture DOM Elements')}}</td>
   <td>Adds the method <code>captureStream()</code>.</td>
  </tr>
 </tbody>
</table>

<h2 id="浏览器支持">浏览器支持</h2>

<p>{{Compat("api.HTMLCanvasElement")}}</p>

<div id="compat-desktop"></div>