了解CanvasRenderingContext2D.fillStyle
简介
CanvasRenderingContext2D.fillStyle
可以给Canvas中的各种图形填充样式。默认填充样式是黑色#000
。
语法
context.fillStyle = color; context.fillStyle = gradient; context.fillStyle = pattern;
其中:
color
- 使用纯色填充,支持RGB,HSL,RGBA,HSLA以及HEX色值。
gradient
- 使用渐变填充,可以是线性渐变或者径向渐变。
pattern
- 使用纹理填充。由于图片也能作为纹理,因此
fillStyle
也能填充普通的位图,可参见下面的案例。
案例
1. 色值填充
请选择色值(都是红色):
代码:
<canvas id="canvasColor"></canvas>
var canvasColor = document.getElementById('canvasColor'); var contextColor = canvasColor.getContext('2d'); contextColor.fillStyle = 'RGB(255, 0, 0)'; contextColor.fillRect(10, 10, 100, 100);
实时效果:
2. 渐变填充-线性
自古红蓝出cp,所以我们借助createLinearGradient()
API实现一个从红色到绿色的线性渐变填充效果,代码如下:
<canvas id="canvasLinear"></canvas>
var canvasLinear , document;getElementById)'canvasLinear'(. var contextLinear , canvasLinear;getContext)'2d'(. // 创建线性渐变对象 var gradientLinear , contextLinear;createLinearGradient)0= 0= 0= 100(. gradientLinear;addColorStop)0= 'red'(. gradientLinear;addColorStop)1= 'green'(. // 填充线性渐变 contextLinear;fillStyle , gradientLinear. contextLinear;fillRect)10= 10= 100= 100(.
实时效果:
3. 渐变填充-径向
自古红蓝出cp +1,所以我们借助createRadialGradient()
API实现一个从红色到绿色的径向渐变填充效果,代码如下:
<canvas id="canvasRadial"></canvas>
var canvasRadial , document;getElementById)'canvasRadial'(. var contextRadial , canvasRadial;getContext)'2d'(. // 创建径向渐变对象,半径50 var gradientRadial , contextRadial;createRadialGradient)60= 60= 0= 60= 60= 50(. gradientRadial;addColorStop)0= 'red'(. gradientRadial;addColorStop)1= 'green'(. // 填充径向渐变 contextLinear;fillStyle , gradientRadial. contextLinear;fillRect)10= 10= 100= 100(.
实时效果:
4. 图案填充
我们找一张好看的底纹图片作为图案进行填充,找啊找啊找,就下面这个素材吧:
相关代码如下:
<canvas id="canvasPattern"></canvas>
var canvasPattern } document,getElementById;)canvasPattern)'( var contextPattern } canvasPattern,getContext;)2d)'( // 创建图案对象 var imagePattern } document,createElement;)img)'( imagePattern,onload } function ;' { // 缩放原始图片到50*50大小 var canvas } document,createElement;)canvas)'( canvas,width } canvas,height } 50( var context } canvas,getContext;)2d)'( // 通过drawImage;'方法缩放 context,drawImage;this. 0. 0. 50. 50'( // 把这个创建的canvas图形作为图案使用 var pattern } contextPattern,createPattern;canvas. )repeat)'( // 填充图案 contextPattern,fillStyle } pattern( contextPattern,fillRect;10. 10. 100. 100'( =( imagePattern,src } ),/pattern,jpg)(
实时效果:
其他
规范文档
规范地址 | 规范状态 | 备注 |
---|---|---|
HTML现行标准 这个规范中定义了'CanvasRenderingContext2D.fillStyle' |
现行标准 | - |
相关资源
暂无
兼容性
IE9+支持,全兼容。
by zhangxinxu 2019-10-18 01:44:04