Spec-Zone.ru › Web APIs

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

Spec-Zone.ru

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