CanvasRenderingContext2D: createRadialGradient() 方法

Baseline 已廣泛支援

此特性已相當成熟,可在許多裝置和瀏覽器版本上使用。自 ⁨2015 年 7 月⁩以來,各瀏覽器均已提供此特性。

CanvasRenderingContext2D.createRadialGradient() 方法(Canvas 2D API)使用兩個圓的大小和座標來建立一個徑向漸變。

此方法返回一個 CanvasGradient 物件。要將其應用於形狀,必須先將其賦值給 fillStylestrokeStyle 屬性。

注意: 漸變座標是全域性的,即相對於當前座標空間。當應用於形狀時,座標相對於形狀的座標。

語法

js
createRadialGradient(x0, y0, r0, x1, y1, r1)

createRadialGradient() 方法有六個引數,前三個定義漸變的起始圓,後三個定義結束圓。

引數

x0

起始圓的 x 軸座標。

y0

起始圓的 y 軸座標。

r0

起始圓的半徑。必須是非負且有限的。

x1

結束圓的 x 軸座標。

y1

結束圓的 y 軸座標。

r1

結束圓的半徑。必須是非負且有限的。

返回值

一個徑向 CanvasGradient 物件,使用兩個指定的圓進行初始化。

異常

NotSupportedError DOMException

當引數傳遞了非有限值時丟擲。

IndexSizeError DOMException

當引數傳遞了負半徑時丟擲。

示例

使用徑向漸變填充矩形

本示例使用 createRadialGradient() 方法初始化一個徑向漸變。然後,在漸變的兩個圓之間建立三個顏色停止點。最後,將漸變賦值給 canvas 上下文,並渲染為一個填充的矩形。

HTML

html
<canvas id="canvas" width="200" height="200"></canvas>

JavaScript

js
const canvas = document.getElementById("canvas");
const ctx = canvas.getContext("2d");

// Create a radial gradient
// The inner circle is at x=110, y=90, with radius=30
// The outer circle is at x=100, y=100, with radius=70
const gradient = ctx.createRadialGradient(110, 90, 30, 100, 100, 70);

// Add three color stops
gradient.addColorStop(0, "pink");
gradient.addColorStop(0.9, "white");
gradient.addColorStop(1, "green");

// Set the fill style and draw a rectangle
ctx.fillStyle = gradient;
ctx.fillRect(20, 20, 160, 160);

結果

規範

規範
HTML
# dom-context-2d-createradialgradient-dev

瀏覽器相容性

另見