Spec-Zone.ru › Web APIs

CanvasRenderingContext2D: свойство shadowColor

Базовая линия Широко поддерживается

Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна во всех браузерах с июля 2015 года.

  • Подробнее
  • Полная совместимость
  • Отправить отзыв

Свойство CanvasRenderingContext2D.shadowColor API Canvas 2D задаёт цвет тени.

Обратите внимание, что непрозрачность отрисованной тени будет зависеть от непрозрачности цвета fillStyle при заливке и цвета strokeStyle при обводке.

Примечание: Тени рисуются только если свойство shadowColor установлено в значение, отличное от прозрачного. Также одно из свойств shadowBlur, shadowOffsetX или shadowOffsetY должно иметь ненулевое значение.

Значение

Строка, интерпретируемая как значение CSS <color>. Значение по умолчанию — полностью прозрачный чёрный.

Примеры

Добавление тени к фигурам

В этом примере добавляется тень к двум квадратам; первый — залитый, второй — обведённый. Свойство shadowColor задаёт цвет тени, а shadowOffsetX и shadowOffsetY — её позицию относительно фигур.

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);

Результат

Тени на полупрозрачных фигурах

Непрозрачность тени зависит от уровня прозрачности родительского объекта (даже если shadowColor задаёт полностью непрозрачное значение). В этом примере прямоугольник обводится и заливается полупрозрачными цветами.

HTML

<canvas id="canvas"></canvas>

JavaScript

Полученное альфа-значение тени заливки равно .8 * .2, или .16. Альфа-значение тени обводки равно .8 * .6, или .48.

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

// Shadow
ctx.shadowColor = "rgb(255 0 0 / 80%)";
ctx.shadowBlur = 8;
ctx.shadowOffsetX = 30;
ctx.shadowOffsetY = 20;

// Filled rectangle
ctx.fillStyle = "rgb(0 255 0 / 20%)";
ctx.fillRect(10, 10, 150, 100);

// Stroked rectangle
ctx.lineWidth = 10;
ctx.strokeStyle = "rgb(0 0 255 / 60%)";
ctx.strokeRect(10, 10, 150, 100);

Результат

Спецификации

Спецификация
HTML
# dom-context-2d-shadowcolor-dev

Совместимость с браузерами

Рабочие столы Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android
shadowColor 1 12 1.5 ≤12.1 2 18 4 ≤12.1 1 1.0 4.4

Примечания для WebKit/Blink

В браузерах на основе WebKit и Blink помимо этого свойства реализован нестандартный и устаревший метод ctx.setShadow().

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);

См. также

  • Интерфейс, определяющий это свойство: CanvasRenderingContext2D

© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/shadowColor

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API