PaintWorkletGlobalScope: registerPaint() Methode
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Experimentell: Dies ist eine experimentelle Technologie
Überprüfen Sie die Browser-Kompatibilitätstabelle sorgfältig, bevor Sie diese produktiv verwenden.
Die registerPaint()
-Methode des
PaintWorkletGlobalScope
-Interfaces registriert eine Klasse, um ein Bild programmatisch zu generieren, wo eine CSS-Eigenschaft eine Datei erwartet.
Syntax
registerPaint(name, classRef)
Parameter
Rückgabewert
Keiner (undefined
).
Ausnahmen
TypeError
-
Wird ausgelöst, wenn eines der Argumente ungültig oder fehlend ist.
InvalidModificationError
DOMException
-
Wird ausgelöst, wenn bereits ein Worklet mit dem angegebenen Namen existiert.
Beispiele
Das folgende Beispiel zeigt die Registrierung eines Worklet-Moduls. Dies sollte in einer separaten JS-Datei erfolgen. Beachten Sie, dass registerPaint()
ohne Referenz zu PaintWorkletGlobalScope
aufgerufen wird. Die Datei selbst wird durch CSS.paintWorklet.addModule()
geladen (dokumentiert hier in der übergeordneten Klasse von PaintWorklet, bei 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);
Der erste Schritt bei der Verwendung eines Paint-Worklets ist die Definition des Paint-Worklets mit der registerPaint()
-Funktion, wie oben gezeigt. Um es zu verwenden, registrieren Sie es mit der Methode CSS.paintWorklet.addModule()
:
<script>
CSS.paintWorklet.addModule("checkboardWorklet.js");
</script>
Sie können dann die
CSS-Funktion in Ihrem CSS überall dort verwenden, wo ein paint()
<image>
-Wert gültig ist.
li {
background-image: paint(checkerboard);
}
Spezifikationen
Specification |
---|
CSS Painting API Level 1 # dom-paintworkletglobalscope-registerpaint |
Browser-Kompatibilität
BCD tables only load in the browser