Signatur
Beschreibung
Die Eigenschaft viewportAnchorX der Schnittstelle VTTRegion legt fest, an welcher horizontalen Stelle des Videobilds eine Untertitel-Region verankert wird. Der Wert ist eine Zahl zwischen 0 (linker Rand) und 100 (rechter Rand) und wird als Prozent der Videobreite interpretiert. Der Standardwert ist 0.
Der Viewport-Anker arbeitet mit dem Regions-Anker (regionAnchorX/regionAnchorY) zusammen: Der Punkt innerhalb der Region, der durch den Regions-Anker bestimmt ist, wird genau auf den Punkt im Video gelegt, den viewportAnchorX und viewportAnchorY angeben. So lassen sich Regionen z. B. zentriert (50/50) oder rechtsbündig (100/100) positionieren, unabhängig von der Größe des Players.
In einer WebVTT-Datei entspricht die Eigenschaft dem ersten Wert der Regions-Einstellung viewportanchor:X%,Y%. Per JavaScript nutzt man sie, um Regionen dynamisch zu erzeugen oder anzupassen – etwa für Sprecher-Untertitel links und rechts im Bild oder zum Ausweichen vor eingeblendeten Bedienelementen.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $value | number | 0 | Beim Setzen: Prozentwert zwischen 0 und 100 (Gleitkommazahl erlaubt) für die horizontale Ankerposition im Video. |
Rückgabewert
0–100).Beispiele
Region rechts im Bild verankern
const video = document.querySelector('video');
const track = video.addTextTrack('subtitles', 'Deutsch', 'de');
track.mode = 'showing';
const region = new VTTRegion();
region.width = 40; // 40 % der Videobreite
region.lines = 3;
region.regionAnchorX = 100; // rechter Rand der Region ...
region.regionAnchorY = 100;
region.viewportAnchorX = 95; // ... sitzt bei 95 % der Videobreite
region.viewportAnchorY = 90;
const cue = new VTTCue(0, 5, 'Sprecher B: Hallo!');
cue.region = region;
track.addCue(cue);
console.log(region.viewportAnchorX);
Wert aus einer geladenen WebVTT-Datei auslesen
// untertitel.vtt enthält:
// REGION
// id:links
// viewportanchor:10%,90%
const trackEl = document.querySelector('track');
trackEl.addEventListener('load', () => {
for (const cue of trackEl.track.cues) {
if (cue.region) {
console.log(cue.region.id, cue.region.viewportAnchorX);
}
}
});
Ungültige Werte abfangen und Region verschieben
const region = new VTTRegion();
const setAnchorX = (r, percent) => {
try {
r.viewportAnchorX = percent;
} catch (err) {
console.warn(`Ungültiger Wert ${percent}:`, err.name);
}
};
setAnchorX(region, 50);
setAnchorX(region, 120);
console.log(region.viewportAnchorX);
// Wichtig · Fallstricke
- Wertebereich: Werte kleiner als
0oder größer als100lösen eineDOMExceptionvom TypIndexSizeErroraus; der alte Wert bleibt erhalten. - Kein Prozentzeichen: Anders als in der VTT-Datei (
viewportanchor:10%,90%) wird in JavaScript nur die Zahl zugewiesen, nicht der String'10%'. - Die Wirkung hängt immer vom Zusammenspiel mit
regionAnchorXundwidthab – wer nurviewportAnchorX = 100setzt, schiebt die Region beiregionAnchorX = 0aus dem sichtbaren Bereich. - Browser-Kompatibilität:
VTTRegionist nicht überall verfügbar (u. a. in Firefox und Safari, in Chromium-Browsern nur eingeschränkt bzw. hinter Flags). Vor der Nutzung mit'VTTRegion' in windowprüfen; Regionen aus VTT-Dateien werden ohne Unterstützung ignoriert.