Element.animate()
element.animate(keyframes, { duration, easing, fill, iterations })
Startet eine Animation eines Elements nach den angegebenen Keyframes – genau wie @keyframes in CSS, aber aus JavaScript gesteuert. Mit dem zurückgegebenen Objekt können Sie die Animation anhalten, abbrechen oder auf ihr Ende warten.
Das Beispiel arbeitet mit dem HTML über dem Code.
Parameter
- keyframes – ein Array von Zuständen, zum Beispiel
[{ opacity: 1 }, { opacity: 0 }]. - duration – die Dauer in ms; easing – der zeitliche Verlauf (
'ease-out'); fill –'forwards'behält den Endzustand; iterations – die Anzahl der Wiederholungen (Infinity).
Rückgabewert
Ein Animation-Objekt (finished, pause(), play(), cancel(), playState).
Beispiele
<div id="notice" style="padding: 10px; background: #dfd">Gespeichert</div>
const notice = document.getElementById('notice');
const a = notice.animate([{ opacity: 1, transform: 'none' }, { opacity: 0, transform: 'translateY(-10px)' }], { duration: 150, easing: 'ease-in', fill: 'forwards' });
console.log(a.playState);
await a.finished;
console.log(a.playState, getComputedStyle(notice).opacity);
notice.remove();
const b = document.body.animate([{ opacity: 0.5 }, { opacity: 1 }], { duration: 1000 });
b.cancel();
console.log(b.playState);
Ausgabe:
running finished 0 idle
Worauf Sie achten sollten
- Ohne
fill: 'forwards'kehrt das Element nach der Animation in seinen ursprünglichen Zustand zurück. - Animieren Sie vor allem
transformundopacity– sie laufen auch auf schwächeren Geräten flüssig. - Berücksichtigen Sie
prefers-reduced-motion(matchMedia()) und lassen Sie einfache Übergänge in CSS.
Browserunterstützung
Baseline – weithin verfügbar: in allen gängigen Browsern seit März 2020, gilt als weithin verfügbar seit September 2022. Ab Version: Chrome 36, Firefox 48, Safari 13.1; nicht in Node.js (Browser-API). Stand: Oktober 2026 (MDN browser-compat-data).
Siehe auch:
requestAnimationFrame()
window.matchMedia()
HTMLElement.style