canvas标签fillStyle 属性用于设置填充绘画样式,可以为1颜色2渐变3模式。
设置一个用黄色为填充的矩形

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>设置一个用黄色为填充的矩形-HTML教程www.xuandaima.com</title>
</head>
<body>
<canvas id="testCanvas" width="290" height="160" style="border:1px solid #d3d3d3;">
您的浏览器不支持 HTML5的canvas标签。</canvas>
<script>
var c=document.getElementById("testCanvas");
var ctx=c.getContext("2d");
ctx.fillStyle="#FFFF00";
ctx.fillRect(30,40,140,110);
</script>
</body>
</html>| 说明字段 | 描述 |
|---|---|
| document.getElementById("testCanvas") | 返回文档id属性为"testCanvas"的对象 |
| getContext("2d") | getContext() 返回画布上绘图的环境。getContext("2d") 返回绘制类型(2 维)的环境,未来可能会支持3维,但现在支持2维。 |
| fillStyle="#FFFF00" | fillStyle 属性设置用于填充绘画的颜色、渐变或模式。这里设置填充颜色,颜色为"#FFFF00"黄色 |
| fillRect(30,40,140,110) | fillRect() 绘制"已填充"的矩形,绘制X坐标为30,Y坐标为40,矩形宽为140像素,矩形高为110像素。 |
注意:Internet Explorer 8 及之前的版本不支持 <canvas> 元素。





fillStyle 属性默认值为#000000黑色,
context.fillStyle=color|gradient|pattern;
设置一个从橙色到黄色再到白色的渐变为填充的矩形

var c=document.getElementById("testCanvas");
var ctx=c.getContext("2d");
var mygradient=ctx.createLinearGradient(0,0,160,0);
mygradient.addColorStop(0,"orange");
mygradient.addColorStop(0.5,"yellow");
mygradient.addColorStop(1,"white");
ctx.fillStyle=mygradient;
ctx.fillRect(30,40,140,110);| 说明字段 | 描述 |
|---|---|
| document.getElementById("testCanvas") | 返回文档id属性为"testCanvas"的对象 |
| getContext("2d") | getContext() 返回画布上绘图的环境。getContext("2d") 返回绘制类型(2 维)的环境,未来可能会支持3维,但现在支持2维。 |
| createLinearGradient(0,0,160,0) | createLinearGradient() 方法创建线性的渐变对象。渐变开始X坐标(0)Y坐标(0),渐变结束X坐标(160)Y坐标(0) |
| addColorStop(0,"orange") | addColorStop() 规定渐变对象中的颜色和位置。0是位置(0.0到1.0之间),"orange"是颜色 橙色 |
| addColorStop(0.5,"yellow") | 规定第二种颜色"yellow"黄色,位置在百分之50(中间位置)。 |
| addColorStop(1,"white") | 规定第三种颜色"white"白色,位置在百分百(靠右位置) |
| ctx.fillStyle=mygradient | fillStyle 属性定义为三种颜色的渐变颜色。 |
| fillRect(30,40,140,110) | fillRect() 绘制"已填充"的矩形,绘制X坐标为30,Y坐标为40,矩形宽为140像素,矩形高为110像素。 |
用放射性/圆形渐变绘制一个矩形

var c=document.getElementById("testCanvas");
var ctx=c.getContext("2d");
var mygradient=ctx.createRadialGradient(75,50,5,90,60,100);
mygradient.addColorStop(0,"orange");
mygradient.addColorStop(1,"white");
ctx.fillStyle=mygradient;
ctx.fillRect(10,10,150,100);| 说明字段 | 描述 |
|---|---|
| document.getElementById("testCanvas") | 返回文档id属性为"testCanvas"的对象 |
| getContext("2d") | getContext() 返回画布上绘图的环境。getContext("2d") 返回绘制类型(2 维)的环境,未来可能会支持3维,但现在支持2维。 |
| createLinearGradient(75,50,5,90,60,100) | createLinearGradient() 方法创建线性的渐变对象。渐变开始X坐标(75)Y坐标(50),渐变开始圆半径(5)渐变结束X坐标(90)Y坐标(60)渐变结束圆半径(100) |
| addColorStop(0,"orange") | addColorStop() 规定渐变对象中的颜色和位置。0是位置(0.0到1.0之间),"orange"是颜色 橙色 |
| addColorStop(1,"white") | 规定第二种颜色"white"白色,位置在百分百(靠外面位置) |
| ctx.fillStyle=mygradient | fillStyle 属性定义为圆形渐变矩形。 |
| fillRect (10,10,150,100) | fillRect() 绘制"已填充"的矩形,绘制X坐标为10,Y坐标为10,矩形宽为150像素,矩形高为110像素。 |
用图像来填充画布

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>用图像来填充画布-HTML教程www.xuandaima.com</title>
</head>
<body>
<p>图片应用:</p>
<img src="/Template/Test/img/X.jpg" id="lamp">
<p>画布:</p>
<button onclick="draw('repeat')">重复</button>
<button onclick="draw('repeat-x')">重复-x</button>
<button onclick="draw('repeat-y')">重复-y</button>
<button onclick="draw('no-repeat')">不重复</button>
<canvas id="testCanvas" width="290" height="160" style="border:1px solid #d3d3d3;">
您的浏览器不支持 HTML5的canvas标签。</canvas>
<script>
function draw(direction){
var c=document.getElementById("testCanvas");
var ctx=c.getContext("2d");
ctx.clearRect(0,0,c.width,c.height);
var img=document.getElementById("lamp")
var pat=ctx.createPattern(img,direction);
ctx.rect(0,0,220,128);
ctx.fillStyle=pat;
ctx.fill();
}
</script>
</body>
</html>| 说明字段 | 描述 |
|---|---|
| document.getElementById("testCanvas") | 返回文档id属性为"testCanvas"的对象 |
| getContext("2d") | getContext() 返回画布上绘图的环境。getContext("2d") 返回绘制类型(2 维)的环境,未来可能会支持3维,但现在支持2维。 |
| clearRect(0,0,c.width,c.height) | clearRect() 清空指定定矩形内的内容。要清除矩形X坐标0(第一个0)要清除矩形Y坐标0(第二个0),c是对象("testCanvas"对象),获取对象宽和高。 |
| document.getElementById("lamp") | 返回文档id属性为"lamp"的对象,获取图片对象 |
| ctx.createPattern(img,direction) | createPattern() 方法指定的方向内重复指定的元素。这里设置重复对象是图片,direction是重复模式(通过点击页面按钮来控制) |
| ctx.fillStyle=pat | fillStyle 属性定义为图像重复矩形。 |
| ctx.fill(); | 填充当前绘图(路径) |