胡邹邹的canvas入门指北

238 阅读4分钟
方法用途
fillRect(x, y, width, height)绘制一个填充的矩形
strokeRect(x, y, width, height)绘制一个矩形的边框
clearRect(x, y, width, height)清除指定矩形区域,让清除部分完全透明
beginPath()新建一条路径,生成之后,图形绘制命令被指向到路径上生成路径
closePath()闭合路径之后图形绘制命令又重新指向到上下文中
stroke()通过线条来绘制图形轮廓
fill()通过填充路径的内容区域生成实心的图形
clip()将当前正在构建的路径转换为当前的裁剪路径
moveTo(x, y)将笔触移动到指定的坐标(x, y)上
arc(x, y, radius, startAngle, endAngle, anticlockwise=false)画一个以(x,y)为圆心的以radius为半径的圆弧(圆),从startAngle开始到endAngle结束,按照anticlockwise给定的方向(默认为顺时针)来生成
quadraticCurveTo(cp1x, cp1y, x, y)绘制二次贝塞尔曲线,cp1x,cp1y为一个控制点,x,y为结束点
bezierCurveTo(cp1x, cp1y, cp2x, cp2y, x, y)绘制三次贝塞尔曲线,cp1x,cp1y为控制点一,cp2x,cp2y为控制点二,x,y为结束点
rect(x, y, width, height)绘制一个左上角坐标为(x,y),宽高为width以及height的矩形
bezierCurveTo(cp1x, cp1y, cp2x, cp2y, x, y)绘制三次贝塞尔曲线,cp1x,cp1y为控制点一,cp2x,cp2y为控制点二,x,y为结束点
getLineDash()返回一个包含当前虚线样式,长度为非负偶数的数组
setLineDash(segments)设置当前虚线样式
createLinearGradient(x1, y1, x2, y2)渐变的起点 (x1,y1) 与终点 (x2,y2)
createRadialGradient(x1, y1, r1, x2, y2, r2)前三个定义一个以 (x1,y1) 为原点,半径为 r1 的圆,后三个参数则定义另一个以 (x2,y2) 为原点,半径为 r2 的圆
gradient.addColorStop(position, color)position 参数必须是一个 0.0 与 1.0 之间的数值,表示渐变中颜色所在的相对位置
gradient.addColorStop(position, color)position 参数必须是一个 0.0 与 1.0 之间的数值,表示渐变中颜色所在的相对位置
createPattern(image, type)Image 可以是一个 Image 对象的引用,或者另一个 canvas 对象。Type 必须是下面的字符串值之一:repeatrepeat-xrepeat-yno-repeat
fillText(text, x, y [, maxWidth])在指定的(x,y)位置填充指定的文本,绘制的最大宽度是可选的
strokeText(text, x, y [, maxWidth])在指定的(x,y)位置绘制文本边框,绘制的最大宽度是可选的
measureText()将返回一个 TextMetrics对象的宽度、所在像素,这些体现文本特性的属性
drawImage(image, x, y [, width, height])其中 image 是 image 或者 canvas 对象,x 和 y 是其在目标 canvas 里的起始坐标, width 和 height 用于控制当向canvas画入时应该缩放的大小
drawImage(image, sx, sy, sWidth, sHeight, dx, dy, dWidth, dHeight)前4个是定义图像源的切片位置和大小,后4个则是定义切片的目标显示位置和大小
save()保存画布(canvas)的所有状态
restore()恢复画布(canvas)的所有状态
translate(x, y)x 是左右偏移量,y 是上下偏移量
rotate(angle)旋转的角度(angle),它是顺时针方向的,以弧度为单位的值
scale(x, y)缩放画布的水平和垂直的单位
属性用途
fillStyle设置图形的填充颜色
strokeStyle设置图形轮廓的颜色
globalAlpha这个属性影响到 canvas 里所有图形的透明度,有效的值范围是 0.0 (完全透明)到 1.0(完全不透明),默认是 1.0
lineWidth设置线条宽度
lineCap设置线条末端样式
lineJoin设定线条与线条间接合处的样式
miterLimit限制当两条线相交时交接处最大长度
lineDashOffset设置虚线样式的起始偏移量
shadowOffsetX设定阴影在 X 轴的延伸距离,它们是不受变换矩阵所影响的。负值表示阴影会往上或左延伸,正值则表示会往下或右延伸,它们默认都为 0
shadowOffsetY设定阴影在 Y 轴的延伸距离
shadowBlur设定阴影的模糊程度,其数值并不跟像素数量挂钩,也不受变换矩阵的影响,默认为 0
shadowColor设定阴影颜色效果,默认是全透明的黑色
miterLimit限制当两条线相交时交接处最大长度
font文本的样式,默认的字体是 10px sans-serif
textAlign文本对齐选项,可选的值包括:start, end, left, right or center. 默认值是 start
textBaseline基线对齐选项,可选的值包括:top, hanging, middle, alphabetic, ideographic, bottom。默认值是 alphabetic
direction文本方向,可能的值包括:ltr, rtl, inherit。默认值是 inherit
globalCompositeOperation设定了在画新图形时采用的遮盖策略,其值是一个标识12种遮盖方式的字符串
window.requestAnimationFrame(callback)告诉浏览器你希望执行一个动画,并在重绘之前,请求浏览器执行一个特定的函数来更新动画