HTMLCanvasElement - 提供了操作 <canvas> 元素的布局和表示的属性和方法
HTMLCanvasElement 接口提供了操作 <canvas> 元素的布局和表示的属性和方法。 HTMLCanvasElement 接口还继承了 HTMLElement 接口的属性和方法。
属性
从其父类 HTMLElement 继承了属性。
HTMLCanvasElement.height
一个正整数(integer),是 CSS 像素值,反映了 <canvas> 元素的 height HTML 属性。如果未指定属性,或者将其设置为无效值(如负数),则使用默认值 150。
HTMLCanvasElement.width
一个正整数(integer),是 CSS 像素值,反映了 <canvas> 元素的 width HTML 属性。如果未指定属性,或者将其设置为无效值(如负数),则使用默认值 300。
HTMLCanvasElement.mozOpaque
一个 Boolean 反映 <canvas> 元素的 moz-opaque HTML 属性。它让画布知道半透明是否是一个因素。如果画布知道没有半透明度,则可以优化绘画性能。仅在基于 Mozilla 的浏览器中支持该功能;请使用标准化的 canvas.getContext('2d',{alpha:false}) 替代。
HTMLCanvasElement.mozPrintCallback
一个初始值为 null 的 function。Web 内容可以将其设置为 JavaScript 函数,如果打印页面将调用该函数。然后,该功能可以以适合所用打印机的更高分辨率重绘画布。 请参阅该博文。
方法
从其父类 HTMLElement 继承了方法。
HTMLCanvasElement.captureStream()
返回一个 CanvasCaptureMediaStream,它是画布表面的实时视频捕获。
HTMLCanvasElement.getContext()
返回画布上的绘图上下文,如果不支持上下文 ID,则返回 null。绘图上下文允许您在画布上绘图。调用它时传入 "2d" 会返回 CanvasRenderingContext2D,传入 "webgl"(或 "experimental-webgl")则返回 WebGLRenderingContext 对象。该上下文仅适用于实现 WebGL 的浏览器。
HTMLCanvasElement.toDataURL()
返回一个 data-URL,其中包含由 type 参数指定的格式的图像表示(默认为 png)。返回的图像的分辨率为 96dpi。
HTMLCanvasElement.toBlob()
创建表示画布中包含的图像的 Blob 对象;该文件可以缓存在磁盘上,也可以由用户代理自行决定存储在内存中。
HTMLCanvasElement.transferControlToOffscreen()
将控制转移到主线程或工作线程上的 OffscreenCanvas 对象。
HTMLCanvasElement.mozGetAsFile()
返回表示画布中包含的图像的 File 对象; 这个文件是一个基于内存的文件,带有指定的 name。如果未指定 type,则图像类型为 image/png。
事件
使用 addEventListener() 监听这些事件
webglcontextcreationerror
如果用户代理无法创建 WebGLRenderingContext 或 WebGL2RenderingContext 上下文,则触发该事件。
webglcontextlost
如果用户代理检测到与 WebGLRenderingContext 或 WebGL2RenderingContext 对象关联的绘图缓冲区已丢失,则触发该事件。
webglcontextrestored
如果用户代理恢复 WebGLRenderingContext 或 WebGL2RenderingContext 对象的绘图缓冲区,则触发该事件。
规范
| 规范 | 状态 | 备注 |
|---|---|---|
| Media Capture from DOM Elements HTMLCanvasElement 的定义 |
编者的草案 | 增加了 captureStream() 方法。 |
| HTML Living Standard HTMLCanvasElement 的定义 |
现行的标准 | 方法 getContext() 现在返回 RenderingContext 而不是不透明的 object。添加了 transferControlToOffscreen() 方法。 |
| HTML 5.1 HTMLCanvasElement 的定义 |
推荐 | - |
| HTML5 HTMLCanvasElement 的定义 |
推荐 | 初始定义。 |
桌面浏览器兼容性
| 特性 | Chrome | Edge | Firefox | Internet Explorer | Opera | Safari |
|---|---|---|---|---|---|---|
| 基础支持 | 4 | 支持 | 3.6 | 9 | 91 | 3.1 |
height | 4 | 12 | 3.6 | 9 | 9 | 3.1 |
mozOpaque | 不支持 | 不支持 | 3.5 | 不支持 | 不支持 | 不支持 |
width | 4 | 12 | 3.6 | 9 | 9 | 3.1 |
captureStream | 51 | 未知 | 43 | 不支持 | 36 | 未知 |
getContext | 支持 | 12 | 3.6 | 9 | 9 | 3.1 |
mozFetchAsStream | 不支持 | 不支持 | 13 — 43 | 不支持 | 不支持 | 不支持 |
mozGetAsFile | 不支持 | 不支持 | 4 | 不支持 | 不支持 | 不支持 |
toBlob | 50 | 不支持 | 19 | 10 ms | 37 | 支持2 |
toDataURL | 4 | 12 | 3.6 | 9 | 9 | 4 |
transferControlToOffscreen | 不支持 | 不支持 | 44 | 不支持 | 不支持 | 不支持 |
移动浏览器兼容性
| 特性 | Android | Chrome for Android | Edge mobile | Firefox for Android | IE mobile | Opera Android | iOS Safari |
|---|---|---|---|---|---|---|---|
| 基础支持 | 支持 | 支持 | 支持 | 支持 | 未知 | 101 | 3.2 |
height | 支持 | 支持 | 支持 | 4 | 未知 | 支持 | 支持 |
mozOpaque | 不支持 | 不支持 | 不支持 | 4 | 未知 | 不支持 | 不支持 |
width | 支持 | 支持 | 支持 | 4 | 未知 | 支持 | 支持 |
captureStream | 51 | 51 | 未知 | 43 | 未知 | 38 | 未知 |
getContext | 支持 | 支持 | 未知 | 4 | 未知 | 支持 | 支持 |
mozFetchAsStream | 不支持 | 不支持 | 不支持 | 不支持 | 未知 | 不支持 | 不支持 |
mozGetAsFile | 不支持 | 不支持 | 不支持 | 4 | 未知 | 不支持 | 不支持 |
toBlob | 50 | 50 | 不支持 | 4 | 未知 | 37 | 不支持 |
toDataURL | 支持 | 18 | 不支持 | 4 | 未知 | 19 | 3 |
transferControlToOffscreen | 不支持 | 不支持 | 不支持 | 44 | 未知 | 不支持 | 不支持 |
1. Opera Mini 5.0 及更高版本具有部分支持。
2. 参阅 WebKit bug 71270.
相关链接
- 实现该接口的 HTML 元素:
<canvas>