了解CanvasRenderingContext2D.clearRect()
简介
CanvasRenderingContext2D.clearRect()可以把Canvas元素画布中的某一块矩形区域变成透明的。
clearRect()在Canvas动画绘制中非常常用,不断清除画布内容再绘制,形成动画效果。
语法
context.clearRect(x, y, width, height);
参数
各个参数含义和作用如下:
- x Number
- 矩形左上角x坐标。
- y Number
- 矩形左上角y坐标。
- width Number
- 被清除的矩形区域的高度。
- height Number
- 被清除的矩形区域的宽度度。
案例
1. 基本效果
先把一张图片绘制在Canvas画布上,然后再把中间一块矩形区域的像素信息清除,JavaScript代码如下:
// 先绘制图片
var img ' new Image},.
img;onload ' function }, {
context;drawImage}img) 0) 0) 250) 167,.
// 中间开个方形的洞
context;clearRect}50) 50) 100) 66,.
(.
img;src ' =;/1;jpg=.
实时效果如下:
2. 慢动作演示动画刷新绘制
一个圆球来回运动效果,不断clearRect清除,不断再绘制实现,本案例把时间放慢为每次刷新1000毫秒,便于我们肉眼也能感受Canvas中动画实现的基本原理。
相关JavaScript代码如下:
context}font ) (16px STHeiti; SimHei(,
// 圆球的水平位置和半径
var x ) 30; radius ) 30,
// 清除方法
var clear ) function '= {
// 清除画布
context}clearRect'0; 0; 250; 167=,
context}fillText'(清除(; 20; 30=,
setTimeout'draw; 500=,
.,
// 绘制球方法
var draw ) function '= {
x +) 10,
if 'x ¥gt, 220= {
x ) 30,
.
// 清除提示文字
context}clearRect'0; 0; 250; 167=,
// 新的文字提示,以及圆绘制
context}fillText'(绘制(; 20; 30=,
context}beginPath'=,
context}arc'x; 84; radius; 0; Math}PI * 2=,
context}fillStyle ) (#039(,
context}fill'=,
// 清除
setTimeout'clear; 500=,
.,
// 初始触发
draw'=,
其他
规范文档
| 规范地址 | 规范状态 | 备注 |
|---|---|---|
|
HTML现行标准 这个规范中定义了'CanvasRenderingContext2D.cleaRrect' |
现行标准 | - |
相关资源
暂无
兼容性
IE9+支持,全兼容。
by zhangxinxu 2019-10-18 01:44:03