HTML Canvas 渐变

画布 - 渐变

渐变可用于填充矩形、圆形、线条、文本等。画布上的形状并不限于纯色。

有两种不同类型的渐变:

  • createLinearGradient(x,y,x1,y1) - 创建线性渐变
  • createRadialGradient(x,y,r,x1,y1,r1) - 创建径向/圆形渐变

一旦我们有了渐变对象,就必须添加两个或更多色标。

addColorStop() 方法规定颜色的停止点及其沿渐变的位置。渐变位置可以是 0 到 1 之间的任意位置。

要使用渐变,请将 fillStyle 或 strokeStyle 属性设置为渐变,然后绘制形状(矩形、文本或线条)。

Canvas - Gradients

使用 createLinearGradient()

实例

创建线性渐变。用渐变填充矩形:

Your browser does not support the HTML5 canvas tag.

JavaScript:

const c = document.getElementById("myCanvas");
const ctx = c.getContext("2d");

// 创建渐变
const grd = ctx.createLinearGradient(0, 0, 200, 0);
grd.addColorStop(0, "red");
grd.addColorStop(1, "white");

// 用渐变填充
ctx.fillStyle = grd;
ctx.fillRect(10, 10, 150, 80);

亲自试一试

使用 createRadialGradient():

实例

创建径向/圆形渐变。用渐变填充矩形:

Your browser does not support the HTML5 canvas tag.

JavaScript:

const c = document.getElementById("myCanvas");
const ctx = c.getContext("2d");

// 创建渐变
const grd = ctx.createRadialGradient(75, 50, 5, 90, 60, 100);
grd.addColorStop(0, "red");
grd.addColorStop(1, "white");

// 用渐变填充
ctx.fillStyle = grd;
ctx.fillRect(10, 10, 150, 80);

亲自试一试

另请参阅:

W3School 的完整 Canvas 参考手册