阴影 Shadows

绘制线段的相关样式属性及方法共有四种:

shadowblur

CanvasRenderingContext2d.shadowBlur 属性设置或返回阴影的模糊级数。

语法

context.shadowBlur = level;
说明类型默认值
level描述模糊效果程度的,float 类型的值。负数、 Infinity 或者 NaN 都会被忽略。string0

示例

<canvas id="canvas"></canvas>
const canvas = document.getElementById("canvas");
const ctx = canvas.getContext("2d");
ctx.shadowColor = "black";
ctx.shadowBlur = 10;
ctx.fillStyle = "white";
ctx.fillRect(10, 10, 100, 100);

shadowColor

CanvasRenderingContext2d.shadowColor 属性设置或返回用于阴影的颜色。

请将 shadowColor 属性与 shadowBlur 属性一起使用,来创建阴影。

请通过使用 shadowOffsetXshadowOffsetY 属性来调节阴影效果。

语法

context.shadowColor = color;
说明类型默认值
color可以转换成 CSS <color> 值的 DOMString字符串string-

示例

<canvas id="canvas"></canvas>
const canvas = document.getElementById("canvas");
const ctx = canvas.getContext("2d");
ctx.shadowColor = "black";
ctx.shadowOffsetY = 10;
ctx.shadowOffsetX = 10;
ctx.fillStyle = "green";
ctx.fillRect(10, 10, 100, 100);

shadowOffsetX

CanvasRenderingContext2D.shadowOffsetX 属性设置或返回形状与阴影的水平距离。

shadowOffsetX = 0 指示阴影位于形状的正下方。

shadowOffsetX = 20 指示阴影位于形状 left 位置右侧的 20 像素处。

shadowOffsetX = -20 指示阴影位于形状 left 位置左侧的 20 像素处。

如需调整距离形状的垂直位置,请使用 shadowOffsetY 属性。

语法

context.shadowOffset = offset;
说明类型默认值
offset正值或负值,定义阴影与形状的水平距离。  Infinity 或者 NaN 都会被忽略。string0

示例

<canvas id="canvas"></canvas>
const canvas = document.getElementById("canvas");
const ctx = canvas.getContext("2d");
ctx.shadowColor = "black";
ctx.shadowOffsetX = 10;
ctx.shadowBlur = 10;
ctx.fillStyle = "green";
ctx.fillRect(10, 10, 100, 100);

shadowOffsetY

CanvasRenderingContext2D.offsetY 属性设置或返回形状与阴影的垂直距离。

shadowOffsetY = 0 指示阴影位于形状的正下方。

shadowOffsetY = 20 指示阴影位于形状 top 位置下方的 20 像素处。

shadowOffsetY = -20 指示阴影位于形状 top 位置上方的 20 像素处。

提示:如需调整距离形状的水平位置,请使用 shadowOffsetX 属性。

语法

context.shadowOffsetY = offset;
说明类型默认值
offset正值或负值,定义阴影与形状的垂直距离。  Infinity 或者NaN 都会被忽略。string0

示例

<canvas id="canvas"></canvas>
const canvas = document.getElementById("canvas");
const ctx = canvas.getContext("2d");
ctx.shadowColor = "black";
ctx.shadowOffsetY = 10;
ctx.shadowBlur = 10;
ctx.fillStyle = "green";
ctx.fillRect(10, 10, 100, 100);