CanvasRenderingContext2D.shadowColor - Web APIs 编辑
The CanvasRenderingContext2D
.shadowColor
property of the Canvas 2D API specifies the color of shadows.
Be aware that the shadow's rendered opacity will be affected by the opacity of the fillStyle
color when filling, and of the strokeStyle
color when stroking.
Note: Shadows are only drawn if the shadowColor
property is set to a non-transparent value. One of the shadowBlur
, shadowOffsetX
, or shadowOffsetY
properties must be non-zero, as well.
Syntax
ctx.shadowColor = color;
Examples
Adding a shadow to shapes
This example adds a shadow to two squares; the first one is filled, and the second one is stroked. The shadowColor
property sets the shadows' color, while shadowOffsetX
and shadowOffsetY
set their position relative to the shapes.
HTML
<canvas id="canvas"></canvas>
JavaScript
const canvas = document.getElementById('canvas');
const ctx = canvas.getContext('2d');
// Shadow
ctx.shadowColor = 'red';
ctx.shadowOffsetX = 10;
ctx.shadowOffsetY = 10;
// Filled rectangle
ctx.fillRect(20, 20, 100, 100);
// Stroked rectangle
ctx.lineWidth = 6;
ctx.strokeRect(170, 20, 100, 100);
Result
Shadows on translucent shapes
A shadow's opacity is affected by the transparency level of its parent object (even when shadowColor
specifies a completely opaque value). This example strokes and fills a rectangle with translucent colors.
HTML
<canvas id="canvas"></canvas>
JavaScript
The resulting alpha value of the fill shadow is .8 * .2
, or .16
. The alpha of the stroke shadow is .8 * .6
, or .48
.
const canvas = document.getElementById('canvas');
const ctx = canvas.getContext('2d');
// Shadow
ctx.shadowColor = 'rgba(255, 0, 0, .8)';
ctx.shadowBlur = 8;
ctx.shadowOffsetX = 30;
ctx.shadowOffsetY = 20;
// Filled rectangle
ctx.fillStyle = 'rgba(0, 255, 0, .2)';
ctx.fillRect(10, 10, 150, 100);
// Stroked rectangle
ctx.lineWidth = 10;
ctx.strokeStyle = 'rgba(0, 0, 255, .6)';
ctx.strokeRect(10, 10, 150, 100);
Result
Specifications
Specification | Status | Comment |
---|---|---|
HTML Living Standard The definition of 'CanvasRenderingContext2D.shadowColor' in that specification. | Living Standard |
Browser compatibility
BCD tables only load in the browser
WebKit/Blink-specific notes
In WebKit- and Blink-based browsers, the non-standard and deprecated method ctx.setShadow()
is implemented besides this property.
setShadow(width, height, blur, color, alpha);
setShadow(width, height, blur, graylevel, alpha);
setShadow(width, height, blur, r, g, b, a);
setShadow(width, height, blur, c, m, y, k, a);
See also
- The interface defining this property:
CanvasRenderingContext2D
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论