Signatur
Beschreibung
Die schreibgeschützte Eigenschaft stdDeviationY des Interfaces SVGFEDropShadowElement gibt die vertikale Standardabweichung des Gaußschen Weichzeichners zurück, mit dem der Schatten eines <feDropShadow>-Filterprimitivs erzeugt wird. Grundlage ist das Attribut stdDeviation, das eine oder zwei Zahlen enthalten kann.
Enthält stdDeviation zwei Werte (z. B. "4 8"), entspricht stdDeviationY dem zweiten Wert. Ist nur ein Wert angegeben, gilt er für beide Achsen, stdDeviationY hat dann also denselben Wert wie stdDeviationX. Fehlt das Attribut, ist der Standardwert 2.
Die Eigenschaft selbst lässt sich nicht neu zuweisen. Sie liefert ein SVGAnimatedNumber-Objekt: baseVal enthält den Wert aus dem Attribut, animVal den aktuellen Wert während einer SMIL-Animation. Zum Ändern verwendest du die Methode setStdDeviation(x, y) oder setAttribute("stdDeviation", …).
Brauchen kannst du die Eigenschaft zum Beispiel, um Schattenparameter auszulesen, einen Filter-Editor mit den aktuellen Werten zu füllen oder Unschärfewerte für Berechnungen wie Bounding-Box-Puffer zu ermitteln.
Rückgabewert
baseVal (Grundwert aus dem Attribut, number) und animVal (aktuell animierter Wert, schreibgeschützt).Beispiele
Y-Komponente bei zwei Werten auslesen
const svgNS = 'http://www.w3.org/2000/svg';
const shadow = document.createElementNS(svgNS, 'feDropShadow');
shadow.setAttribute('stdDeviation', '4 8');
console.log(shadow.stdDeviationX.baseVal);
console.log(shadow.stdDeviationY.baseVal);
Ein Wert gilt für beide Achsen, Standardwert ohne Attribut
const svgNS = 'http://www.w3.org/2000/svg';
const a = document.createElementNS(svgNS, 'feDropShadow');
a.setAttribute('stdDeviation', '5');
console.log(a.stdDeviationY.baseVal); // übernimmt X-Wert
const b = document.createElementNS(svgNS, 'feDropShadow');
console.log(b.stdDeviationY.baseVal); // Standardwert
Vertikale Unschärfe per Schieberegler ändern
// <svg><filter id="schatten"><feDropShadow id="ds" dx="2" dy="4" stdDeviation="2 2"/></filter></svg>
// <input type="range" id="blurY" min="0" max="20">
const ds = document.getElementById('ds');
const slider = document.getElementById('blurY');
slider.value = ds.stdDeviationY.baseVal;
slider.addEventListener('input', () => {
const x = ds.stdDeviationX.baseVal;
ds.setStdDeviation(x, Number(slider.value));
console.log('Neue Y-Unschärfe:', ds.stdDeviationY.baseVal);
});
// Wichtig · Fallstricke
- Die Eigenschaft selbst ist schreibgeschützt.
shadow.stdDeviationY = 5wird stillschweigend ignoriert und wirft im Strict Mode einenTypeError. Ändern kannst du den Wert mitsetStdDeviation(x, y)odersetAttribute('stdDeviation', …). - Negative Werte in
stdDeviationsind ein Fehler: Der Filter wird dann je nach Browser deaktiviert oder nicht angewendet. Beim Wert0entsteht auf dieser Achse keine Unschärfe. - Zu hohe Werte kosten beim Rendern viel Leistung, besonders bei großen Flächen oder bei Animationen.
animValunterscheidet sich nur während einer SMIL-Animation vonbaseVal. CSS-Filterfunktionen wiedrop-shadow()wirken sich darauf nicht aus.- Browserunterstützung: in allen aktuellen Browsern vorhanden. Der Internet Explorer unterstützt
<feDropShadow>nicht.