CanvasRenderingContext2D: свойство globalAlpha
Базовая линия Широко доступно
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна во всех браузерах с июля 2015 года.
Свойство CanvasRenderingContext2D.globalAlpha API холста 2D определяет значение альфа (прозрачность), применяемое к фигурам и изображениям перед их отрисовкой на холсте.
Примечание: См. также главу Применение стилей и цветов в Учебнике по холсту.
Значение
Число от 0.0 (полностью прозрачно) до 1.0 (полностью непрозрачно), включительно. Значение по умолчанию 1.0. Значения вне этого диапазона, включая Infinity и NaN, не будут установлены, и globalAlpha сохранит своё предыдущее значение.
Примеры
Отрисовка полупрозрачных фигур
В этом примере используется свойство globalAlpha для отрисовки двух полупрозрачных прямоугольников.
HTML
<canvas id="canvas"></canvas>
JavaScript
const canvas = document.getElementById("canvas");
const ctx = canvas.getContext("2d");
ctx.globalAlpha = 0.5;
ctx.fillStyle = "blue";
ctx.fillRect(10, 10, 100, 100);
ctx.fillStyle = "red";
ctx.fillRect(50, 50, 100, 100);
Результат
Наложение прозрачных фигур
В этом примере показано влияние наложения нескольких прозрачных фигур друг на друга. Сначала мы рисуем твёрдый фон, состоящий из четырёх квадратов разных цветов. Затем мы устанавливаем свойство globalAlpha в значение 0.2 (20% непрозрачности); этот уровень альфа будет применяться ко всем нашим прозрачным фигурам. После этого мы используем цикл for для отрисовки ряда окружностей с увеличивающимися радиусами.
С каждой новой окружностью непрозрачность предыдущих окружностей под ней фактически увеличивается. Если мы увеличим количество шагов (и, следовательно, нарисуем больше окружностей), фон в центре изображения со временем полностью исчезнет.
const canvas = document.getElementById("canvas");
const ctx = canvas.getContext("2d");
// Draw background
ctx.fillStyle = "#FD0";
ctx.fillRect(0, 0, 75, 75);
ctx.fillStyle = "#6C0";
ctx.fillRect(75, 0, 75, 75);
ctx.fillStyle = "#09F";
ctx.fillRect(0, 75, 75, 75);
ctx.fillStyle = "#F30";
ctx.fillRect(75, 75, 75, 75);
ctx.fillStyle = "#FFF";
// Set transparency value
ctx.globalAlpha = 0.2;
// Draw transparent circles
for (let i = 0; i < 7; i++) {
ctx.beginPath();
ctx.arc(75, 75, 10 + 10 * i, 0, Math.PI * 2, true);
ctx.fill();
}
Спецификации
| Спецификация |
|---|
| HTML # dom-context-2d-globalalpha-dev |
Совместимость с браузерами
| Рабочие столы | Мобильные | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на IOS | Samsung Internet | WebView Android | |
globalAlpha |
1 | 12 | 1.5 | ≤12.1 | 2 | 18 | 4 | ≤12.1 | 1 | 1.0 | 4.4 |
Примечания для Gecko
- Начиная с Gecko 5.0, указание недопустимых значений для
globalAlphaбольше не вызывает исключениеSYNTAX_ERR; теперь они корректно игнорируются.
Примечания для WebKit/Blink
- В браузерах на основе WebKit и Blink реализован нестандартный и устаревший метод
ctx.setAlpha()в дополнение к этому свойству.
См. также
- Интерфейс, определяющий это свойство:
CanvasRenderingContext2D CanvasRenderingContext2D.globalCompositeOperation
© 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/globalAlpha