PaintWorkletGlobalScope: метод registerPaint()
Ограниченная доступность
Эта функция не является Baseline, так как она не работает в некоторых из наиболее широко используемых браузеров.
Экспериментально: Это экспериментальная технология
Перед использованием в производстве внимательно проверьте таблицу совместимости браузеров.
Метод registerPaint() интерфейса PaintWorkletGlobalScope регистрирует класс для программного создания изображения, где свойство CSS ожидает файл.
Синтаксис
registerPaint(name, classRef)
Параметры
Возвращаемое значение
None (undefined).
Исключения
TypeError-
Выбрасывается, когда один из аргументов недействителен или отсутствует.
-
InvalidModificationErrorDOMException -
Выбрасывается, когда worklet с указанным именем уже существует.
Примеры
В следующем примере показана регистрация модуля worklet. Он должен быть в отдельном файле js. Обратите внимание, что registerPaint() вызывается без ссылки на PaintWorkletGlobalScope. Сам файл загружается с помощью CSS.paintWorklet.addModule() (документировано здесь в родительском классе PaintWorklet, в Worklet.addModule().
/* checkboardWorklet.js */
class CheckerboardPainter {
paint(ctx, geom, properties) {
// Use `ctx` as if it was a normal canvas
const colors = ["red", "green", "blue"];
const size = 32;
for (let y = 0; y < geom.height / size; y++) {
for (let x = 0; x < geom.width / size; x++) {
const color = colors[(x + y) % colors.length];
ctx.beginPath();
ctx.fillStyle = color;
ctx.rect(x * size, y * size, size, size);
ctx.fill();
}
}
}
}
// Register our class under a specific name
registerPaint("checkerboard", CheckerboardPainter);
Первый шаг в использовании paintworklet — определение paint worklet с помощью функции registerPaint(), как показано выше. Для использования его необходимо зарегистрировать с помощью метода CSS.paintWorklet.addModule():
<script>
CSS.paintWorklet.addModule("checkboardWorklet.js");
</script>
Затем вы можете использовать функцию CSS в вашем CSS там, где допустимо значение paint()<image>.
li {
background-image: paint(checkerboard);
}
Спецификации
Совместимость браузеров
| Рабочие столы | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
registerPaint |
65 | 79 | Нет | 52 | Нет | 65 | Нет | 47 | Нет | 9.0 | 65 |
См. также
© 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/PaintWorkletGlobalScope/registerPaint