Signatur
Beschreibung
Die Eigenschaft Animation.id enthält eine Kennung als String. Mit ihr lässt sich eine bestimmte Animation wiederfinden, etwa unter den vielen Animationen, die document.getAnimations() oder element.getAnimations() zurückgeben. Standardmäßig ist der Wert ein leerer String "".
Setzen lässt sich die Kennung auf zwei Arten: direkt über die Zuweisung animation.id = "name" oder beim Erstellen über die Option id von Element.prototype.animate(). Beide Wege führen zum selben Ergebnis.
Die Kennung ist nicht eindeutig und hat nichts mit dem HTML-Attribut id zu tun. Der Browser prüft nicht, ob sie doppelt vorkommt, und sie wirkt sich weder auf den Ablauf noch auf das Aussehen der Animation aus. Nützlich ist sie vor allem beim Debuggen (die Entwicklerwerkzeuge zeigen sie im Animations-Panel an), beim Protokollieren und um Animationen gezielt zu steuern.
Rückgabewert
"". Zugewiesene Werte, die keine Strings sind, werden in einen String umgewandelt.Beispiele
Kennung beim Erstellen mit animate() vergeben
const box = document.querySelector('.box');
const fadeIn = box.animate(
[{ opacity: 0 }, { opacity: 1 }],
{ duration: 500, fill: 'forwards', id: 'fade-in' }
);
console.log(fadeIn.id);
Kennung nachträglich setzen und lesen
const effect = new KeyframeEffect(
document.querySelector('.spinner'),
[{ transform: 'rotate(0deg)' }, { transform: 'rotate(360deg)' }],
{ duration: 1000, iterations: Infinity }
);
const spin = new Animation(effect, document.timeline);
console.log(JSON.stringify(spin.id)); // Standardwert
spin.id = 'spinner-rotation';
spin.play();
console.log(spin.id);
Bestimmte Animationen über die Kennung finden und pausieren
const pauseById = (id) => {
const matches = document.getAnimations().filter((a) => a.id === id);
matches.forEach((a) => a.pause());
return matches.length;
};
document.querySelectorAll('.card').forEach((card, i) => {
card.animate(
[{ transform: 'translateY(0)' }, { transform: 'translateY(-10px)' }],
{ duration: 800, iterations: Infinity, direction: 'alternate', delay: i * 100, id: 'hover-bounce' }
);
});
console.log(`Pausiert: ${pauseById('hover-bounce')}`);
// Wichtig · Fallstricke
- Nicht eindeutig: Mehrere Animationen können dieselbe
idhaben. Wenn du nach der Kennung suchst, rechne also immer mit mehreren Treffern (filter()stattfind()). - CSS-Animationen und -Übergänge: Bei
CSSAnimation- undCSSTransition-Objekten istidstandardmäßig leer. Der Name der Keyframes steht stattdessen inCSSAnimation.animationName, die animierte Eigenschaft inCSSTransition.transitionProperty. - Typumwandlung: Zuweisungen werden in einen String umgewandelt.
anim.id = 42ergibt also"42"undanim.id = nullergibt"null". - Kompatibilität: Wird von Chrome/Edge 75+, Firefox 48+ und Safari 13.1+ unterstützt. In älteren Browsern fehlt die Web Animations API teilweise. Prüfe sie bei Bedarf mit
'animate' in Element.prototype.