Signatur
Beschreibung
Die Eigenschaft height der Schnittstelle SVGFEFloodElement entspricht dem Attribut height des Elements <feFlood>. Sie legt die vertikale Ausdehnung des Teilbereichs (filter primitive subregion) fest, den das Filterprimitiv mit Farbe füllt.
Zurückgegeben wird kein einfacher Zahlenwert, sondern ein SVGAnimatedLength-Objekt. Über baseVal lesen oder ändern Sie den im Markup gesetzten Grundwert. animVal liefert den aktuellen, eventuell durch SMIL-Animation veränderten Wert und ist nur lesbar. Beide sind SVGLength-Objekte mit Eigenschaften wie value, valueInSpecifiedUnits und unitType.
Die Eigenschaft selbst ist schreibgeschützt: Sie können element.height keinen neuen Wert zuweisen. Die Höhe ändern Sie über height.baseVal.value, über newValueSpecifiedUnits() oder mit setAttribute("height", …). Ist kein Attribut gesetzt, gilt als Standardwert 100% des Filterbereichs.
Rückgabewert
baseVal (änderbarer Grundwert) und animVal (aktueller animierter Wert, nur lesbar). Beide sind vom Typ SVGLength.Beispiele
Höhe eines feFlood-Primitivs auslesen
const svgNS = 'http://www.w3.org/2000/svg';
const svg = document.createElementNS(svgNS, 'svg');
svg.innerHTML = `
<filter id="flut">
<feFlood id="flood" x="0" y="0" width="200" height="80" flood-color="tomato" />
</filter>`;
document.body.append(svg);
const flood = document.getElementById('flood');
console.log(flood.height instanceof SVGAnimatedLength);
console.log(flood.height.baseVal.value);
console.log(flood.height.animVal.value);
Höhe per Script anpassen
const flood = document.querySelector('feFlood');
// Grundwert direkt in Benutzereinheiten setzen
flood.height.baseVal.value = 120;
console.log(flood.getAttribute('height'));
// Prozentwert mit expliziter Einheit setzen
flood.height.baseVal.newValueSpecifiedUnits(SVGLength.SVG_LENGTHTYPE_PERCENTAGE, 50);
console.log(flood.getAttribute('height'));
Einheit prüfen und Zuweisungsversuch
const flood = document.querySelector('feFlood');
flood.setAttribute('height', '25%');
const len = flood.height.baseVal;
console.log(len.unitType === SVGLength.SVG_LENGTHTYPE_PERCENTAGE);
console.log(len.valueInSpecifiedUnits);
// Direkte Zuweisung wird ignoriert (im Strict Mode: TypeError)
try {
'use strict';
flood.height = 10;
} catch (e) {
console.log(e.name);
}
console.log(flood.getAttribute('height'));
// Wichtig · Fallstricke
- Nur lesbar: Eine Zuweisung wie
flood.height = 100hat keine Wirkung. In ES-Modulen und im Strict Mode löst sie einenTypeErroraus. Ändern Sie stattdessenheight.baseValoder das Attribut. - Prozentwerte: Bei Prozentangaben liefert
baseVal.valueeinen in Benutzereinheiten umgerechneten Wert, der vom Filterbereich und vonprimitiveUnitsabhängt. MitvalueInSpecifiedUnitserhalten Sie den Wert in der angegebenen Einheit. animValist nur lesbar: Ein Schreibversuch löst eineNoModificationAllowedError-DOMException aus.- Namensraum: Elemente, die mit
document.createElement('feFlood')statt mitcreateElementNSerzeugt werden, sind keineSVGFEFloodElement-Instanzen und haben die Eigenschaft nicht. - Kompatibilität: Wird von allen modernen Browsern unterstützt (Chrome, Edge, Firefox, Safari). Eine negative Höhe ist ein Fehler und deaktiviert das Filterprimitiv, bei
0wird es nicht gerendert.