如果你已经在写页面、会用 HTML 和 CSS 排布局,但对「在网页上画东西」这件事一直绕着走,那这门 Canvas 课值得先了解一下。它不讲框架,也不讲工程化,只盯一个问题:怎么用 JavaScript 在 Canvas 上把图形画出来、动起来。
它解决的是哪类工作场景
Canvas 在实际工作里出现的场合比很多人想的要多。最常见的是三类:一是数据可视化里的自定义图表,比如用现成图表库改不动的特殊图形;二是交互型页面元素,比如签到墙、刮刮卡、图片裁剪框、涂鸦板;三是轻量的动画和游戏效果,比如粒子背景、小游戏主循环。这些需求有个共同点——用 CSS 和普通 DOM 做起来别扭,甚至做不了,而 Canvas 正好对口。
反过来讲,如果你的日常工作就是写后台管理页面、调接口、拼表单,那 Canvas 出现的频率确实不高,学之前可以先想清楚自己有没有这类需求。它不是前端必修课,更像是一项「遇到特定场景能顶上」的手艺。
学完之后能独立做什么
这门课的目标不是让你成为图形专家,而是让你具备独立开工的能力。学完比较现实的水平是:
- 能自己从零搭起一块画布,处理坐标系、尺寸适配和屏幕缩放问题;
- 能画出矩形、圆、路径、贝塞尔曲线这类基础图形,并控制描边、填充、渐变和阴影;
- 能往画布上放文字和图片,做裁剪、缩放、旋转等变换;
- 能写一个带 requestAnimationFrame 的动画循环,让图形动起来并响应鼠标事件;
- 知道在什么情况下该重绘画布、什么情况下该用离屏缓存,避免页面卡顿。
换句话说,一个签到涂鸦板、一个自定义的进度环、一个简单的粒子动效,这些你都能自己写出来,而不是去网上找一段看不太懂的代码改。
内容组织方式
课程是按「先认识 API、再动手画」的顺序推进的。前半部分集中在 Canvas 的上下文对象和各种绘制方法上,每一个方法基本都配了可直接运行的例子,边看边敲能马上看到效果——这一点对 Canvas 特别重要,因为它的很多参数(比如圆弧的起始角度、路径的闭合顺序)光看文字很难建立直觉。
后半部分偏向综合运用,会把前面零散的绘制技巧串成完整的小项目,同时带出性能方面的注意事项,比如大量图形重绘时的开销来源、像素比处理不当导致的模糊问题。这些坑在实际项目里很常见,提前知道能少走弯路。
适合什么基础的人
最低门槛是能看懂 JavaScript 的函数、对象和数组操作。如果你连变量声明和循环都还不熟,直接学 Canvas 会比较吃力,因为它几乎每一行代码背后都是 JS 逻辑。HTML 和 CSS 只要会基本的标签和样式就够了,不需要很深的布局功底。
另外提醒一点:Canvas 和 SVG 经常被放在一起比较,但这门课聚焦在 Canvas 的位图绘制上。如果你实际需求是画可交互、可单独选中元素的图表,可能还得另外了解 SVG 的路线。先判断清楚自己的场景,再决定要不要投入时间。
怎么用这份资料
建议不要只看不写。Canvas 的效果全在屏幕上看得到,跟着敲一遍和只看视频,掌握程度差得很远。可以把每节的示例代码先跑起来,改几个参数看看变化,再试着自己重新写一遍。遇到动画和性能那部分,最好拿一个自己真实想做的效果去套,哪怕做得很粗糙,也比单纯跑通示例更有收获。配套的代码和资源可以当作对照答案用,但别一上来就照抄。
课程目录
第一章 Canvas绘制图形详解 Canvas介绍和快速入门 Canvas的整体介绍与课程说明 Canvas快速入门-Canvas绘图演示 Canvas快速入门-补充-获取不了WebGLRenderingContext的原因 Canvas快速入门-Canvas中的直角坐标系 Canvas快速入门-练习 Canvas绘制图形 练习-绘制虚线-01-水平虚线 练习-绘制虚线-02-倾斜虚线 练习-绘制正方形 练习-绘制多个形状 Canvas填充 填充-01-fill方法 填充-02-非零环绕原则 填充-03-非零环绕的练习 Canvas闭合路径和开启新路径 闭合路径-01-closePath方法 闭合路径-02-线宽的问题 闭合路径-03-closePath与lineTo闭合的异同 开启新路径-01-路径的概念-01 开启新路径-01-路径的概念-3 条
- 02 Canvas线性属性 线形属性-线帽与拐角 线形属性-虚线 线形属性-填充与描边的颜色 Canvas绘制坐标轴练习 练习-01-绘制坐标网格 练习-02-绘制坐标轴 练习-03-绘制坐标轴中的点 Canvas封装Line构造函数 封装Line构造函数-01 封装Line构造函数-02 小结01 复习01 复习
- 01 Canvas绘制坐标点 绘制坐标点-01-绘制坐标轴 绘制坐标点-02-绘制坐标点问题 绘制坐标点-03-绘制思路说明 绘制坐标点-04-绘制点 绘制坐标点-05-连线-扩展 Canvas绘制矩形 绘制矩形-01-三个基本方法 绘制矩形-02-清除矩形区域 绘制矩形-03-简单的移动动画 绘制矩形-04-清除整个画布 Canvas绘制圆弧 绘制圆弧-01-arc方法的使用介绍 绘制圆弧-02-弧度与角度 绘制圆弧-03-0角的位置与计算 绘制圆弧-04-起始点与绘制圆弧的关系 绘制圆弧-05-计算圆弧上的点的坐标 Canvas绘制扇形和圆弧 绘制扇形-01-绘制简单扇形 绘制扇形-02-利用动画绘制圆 绘制扇形-03-绘制三等分饼形图 绘制扇形-04-根据数据绘制饼形图 绘制扇形-04-根据数据绘制饼形图-补充说明 绘制圆弧-其他 Canvas绘制文本 绘制文本-01-基本方法的使用 绘制文本-02-设置文本尺寸与字体 绘制文本-03-设置文本对齐属性 Canvas绘制饼形图案例 绘制动画-01-绘制单张图片 绘制动画-02-绘制动画 综合案例-绘制饼形图 复习02 复习
- 02 Canvas绘制图片 绘制图片-01-指定绘制位置 绘制图片-02-指定绘制区域 绘制图片-03-将图片的某个区域绘制到指定区域 Canvas绘制动画和变换 绘制动画-01-绘制单张图片 绘制动画-02-绘制动画 变换-01-变换的基本概念 变换-02-利用坐标变换绘制椭圆 变换-03-绘制旋转矩形 变换-04-分析旋转变换效果 Canvas其它介绍 画布的状态保持 Canvas其他 Konva介绍 Konva的特点 使用Konva绘制矩形 Konva介绍和使用 Konva介绍 Konva的特点 使用Konva绘制矩形 查看文档绘制五角星 查看文档绘制五角星 文档与讲义






