createlineargradient用于创建线性渐变对象,需指定起点(x0,y0)和终点(x1,y1),再用addcolorstop添加0~1间偏移的颜色停靠点,最后赋给fillstyle或strokestyle生效。

createLinearGradient 是 Canvas 2D 上下文(CanvasRenderingContext2D)提供的方法,用于创建一个线性渐变对象,之后可赋值给 fillStyle 或 strokeStyle,实现图形的渐变填充或描边。
基本用法:定义渐变方向和颜色停靠点
调用格式为:const gradient = ctx.createLinearGradient(x0, y0, x1, y1);
其中 (x0, y0) 是渐变起点坐标,(x1, y1) 是终点坐标 —— 这两点确定一条直线,颜色将沿该直线方向平滑过渡。
- 坐标基于画布像素,原点在左上角(0, 0)
- 起点和终点可以超出画布范围,不影响效果,只影响渐变“方向”和“比例”
- 创建后需用
gradient.addColorStop(offset, color)添加至少两个颜色停靠点
添加颜色停靠点:addColorStop
addColorStop 的第一个参数 offset 是 0~1 之间的数值,表示从起点到终点的距离比例:
-
0对应起点颜色 -
1对应终点颜色 - 中间值如
0.5表示中点位置的颜色
例如:
使用 PptxGenJS 和 Python 解析,将结构化的 HTML/CSS 幻灯片内容转换为原生、可编辑的 PowerPoint(.pptx)演示文稿。
const grad = ctx.createLinearGradient(0, 0, 200, 100); grad.addColorStop(0, '#ff9a9e'); // 左上角起始色 grad.addColorStop(0.5, '#fad0c4'); // 中间色 grad.addColorStop(1, '#a1c4fd'); // 右下角结束色 ctx.fillStyle = grad; ctx.fillRect(0, 0, 200, 100);
常见渐变方向写法
通过调整起点和终点坐标,可快速实现常用方向:
- 从左到右:
createLinearGradient(0, 0, width, 0) - 从上到下:
createLinearGradient(0, 0, 0, height) - 对角线(左上→右下):
createLinearGradient(0, 0, width, height) - 反向对角线(右上→左下):
createLinearGradient(width, 0, 0, height)
注意事项与技巧
使用时需注意几个关键点:
- 渐变对象本身不绘制,必须赋给
fillStyle或strokeStyle才生效 - 渐变坐标是绝对画布坐标,不是图形自身坐标;若想随图形移动,需在绘制前重新创建或手动偏移坐标
- 支持 CSS 颜色值:十六进制、rgb()、rgba()、hsl() 等均可
- 多次调用
addColorStop可创建多段渐变,但 offset 必须按升序排列,否则行为未定义
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










