<canvas>
用于绘制图像
属性
- height 定义画布的高度
- width 定义画布的宽度
标准属性
<canvas>
支持html5中的标准属性
事件属性
<canvas>
支持html5中的事件属性
实例
<canvas id="lcanvas" width="100" height="200" style="border:1px; solid:#696969;
background-color:red">
</canvas>
width和height不可设置为px
getContext("2d") 对象常用属性和方法
颜色、样式和阴影
属性 |
描述 |
fillStyle |
设置或返回用于填充绘画的颜色、渐变或模式 |
strokeStyle |
设置或返回用于笔触的颜色、渐变或模式 |
shadowColor |
设置或返回用于阴影的颜色 |
shadowBlur |
设置或返回用于阴影的模糊级别 |
shadowOffsetX |
设置或返回阴影距形状的水平距离 |
shadowOffsetY |
设置或返回阴影距形状的垂直距离 |
方法 |
描述 |
createLinearGradient() |
创建线性渐变(用在画布内容上) |
createPattern() |
在指定的方向上重复指定的元素 |
createRadialGradient() |
创建放射状/环形的渐变(用在画布内容上) |
addColorStop() |
规定渐变对象中的颜色和停止位置 |
线条样式
属性 |
描述 |
lineCap |
设置或返回线条的结束端点样式 |
lineJoin |
设置或返回两条线相交时,所创建的拐角类型 |
lineWidth |
设置或返回当前的线条宽度 |
miterLimit |
设置或返回最大斜接长度 |
矩形
方法 |
描述 |
rect() |
创建矩形 |
fillRect() |
绘制“被填充”的矩形 |
strokeRect() |
绘制矩形(无填充) |
clearRect() |
在给定的矩形内清除指定的像素 |
路径
方法 |
描述 |
fill() |
填充当前绘图(路径) |
stroke() |
绘制已定义的路径 |
beginPath() |
起始一条路径,或重置当前路径 |
moveTo() |
把路径移动到画布中的指定点,不创建线条 |
closePath() |
创建从当前点回到起始点的路径 |
lineTo() |
添加一个新点,然后在画布中创建从该点到最后指定点的线条 |
clip() |
从原始画布剪切任意形状和尺寸的区域 |
quadraticCurveTo() |
创建二次贝塞尔曲线 |
bezierCurveTo() |
创建三次方贝塞尔曲线 |
arc() |
创建弧/曲线(用于创建圆形或部分圆) |
arcTo() |
创建两切线之间的弧/曲线 |
isPointInPath() |
如果指定的点位于当前路径中,则返回 true,否则返回 false |
图像绘制
方法 |
描述 |
drawImage() |
向画布上绘制图像、画布或视频 |
综合实例
代码
var c=document.getElementById("myCanvas");
var ctx=c.getContext("2d");
ctx.fillStyle="#0000ff";
ctx.fillRect(20,20,150,100);
结果

代码
var c=document.getElementById("myCanvas");
var ctx=c.getContext("2d");
var my_gradient=ctx.createLinearGradient(0,0,0,170);
my_gradient.addColorStop(0,"black");
my_gradient.addColorStop(1,"white");
ctx.fillStyle=my_gradient;
ctx.fillRect(20,20,150,100);
结果

代码
var c=document.getElementById("myCanvas");
var ctx=c.getContext("2d");
var my_gradient=ctx.createLinearGradient(0,0,170,0);
my_gradient.addColorStop(0,"black");
my_gradient.addColorStop(0.5,"red");
my_gradient.addColorStop(1,"white");
ctx.fillStyle=my_gradient;
ctx.fillRect(20,20,150,100);
结果

代码
var c=document.getElementById("myCanvas");
var ctx=c.getContext("2d");
ctx.strokeStyle="#0000ff";
ctx.strokeRect(20,20,150,100);
结果

代码
var c=document.getElementById("myCanvas");
var ctx=c.getContext("2d");
var gradient=ctx.createLinearGradient(0,0,170,0);
gradient.addColorStop("0","magenta");
gradient.addColorStop("0.5","blue");
gradient.addColorStop("1.0","red");
// 用渐变进行填充
ctx.strokeStyle=gradient;
ctx.lineWidth=5;
ctx.strokeRect(20,20,150,100);
结果

代码
var c=document.getElementById("myCanvas");
var ctx=c.getContext("2d");
ctx.font="30px Verdana";
// 创建渐变
var gradient=ctx.createLinearGradient(0,0,c.width,0);
gradient.addColorStop("0","magenta");
gradient.addColorStop("0.5","blue");
gradient.addColorStop("1.0","red");
// 用渐变进行填充
ctx.strokeStyle=gradient;
ctx.strokeText("Big smile!",10,50);
结果
