--- title: Element.animate() slug: Web/API/Element/animate tags: - API - Animacion - Elemento - Experimental - metodo - waapi - web animations api translation_of: Web/API/Element/animate ---
{{APIRef('Web Animations')}} {{SeeCompatTable}}
El método Element.animate() es un método abreviado para crear y reproducir una animación en un elemento. Devuelve la instancia creada de un objeto {{domxref("Animation")}} .
element.animate(keyframes, options);
keyframesUn Objeto formateado para representar un conjunto de fotogramas clave.
opcionesid {{optional_inline}}Una propiedad única para animar(): a DOMString con la cual se hace referencia a la animación.Las siguientes opciones actualmente no se han enviado a todos los sitios, pero se añadirán en un futuro próximo.
composite {{optional_inline}}Valores predeterminados a reemplazar.
añadir dicta un efecto aditivo, donde cada iteración sucesiva se basa en la anterior. Por ejemplo con transform, a translateX(-200px) no anularía un valor anterior rotate(20deg) que resultaría translateX(-200px) rotate(20deg).acumular es similar pero un poco más inteligente: blur(2) y blur(5) resultaría blur(7), no blur(2) blur(5).remplazar sobreescribe el valor anterior con el nuevo.iterationComposite {{optional_inline}}Se puede configurar para acumular o reemplazar (ver arriba). Valores predeterminados para reemplazar.spacing {{optional_inline}}Valores predeterminados para distribuir.
distribuir las posiciones de los keyframes para que la diferencia entre el anterior y el posterior estén compensadas por igual , lo que es como decir, sin ninguna compensación, esto distribuirá equitativamente los keyframes a traves del tiempo de ejecución.situar las posiciones de los keyframes de manera que igualen la diferencia entre los siguientes valores de una propiedad especifica sincronizada , lo que es como decir, que los keyframes estén más espaciados cuanto mayores sean los valores de sus propiedades.
Returns an {{domxref("Animation")}}.
En la demostración Down the Rabbit Hole (con la Web Animation API), utilizamos el método conveniente, animate() para inmediatamente crear y ejecutar una animación en el elemento #tunnel para hacerlo fluir hacia arriba, indefinidamente. Observar el orden de paso de los objetos por los keyframes y también el bloque de opciones de sincronización.
document.getElementById("tunnel").animate([
// keyframes
{ transform: 'translateY(0px)' },
{ transform: 'translateY(-300px)' }
], {
// timing options
duration: 1000,
iterations: Infinity
});
| Specification | Status | Comment |
|---|---|---|
| {{SpecName('Web Animations', '#the-animatable-interface', 'animate()' )}} | {{Spec2('Web Animations')}} | Initial definition |
{{CompatibilityTable}}
| Feature | Chrome | Edge | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) |
|---|---|---|---|---|---|---|
| Basic support | {{CompatChrome("36")}} | {{CompatUnknown}} | {{ CompatGeckoDesktop("48.0")}} | {{CompatUnknown}} | 23 | {{CompatUnknown}} |
id option |
{{CompatChrome(50.0)}} | {{CompatUnknown}} | {{ CompatGeckoDesktop("48.0")}} | {{CompatUnknown}} | 37 | {{CompatUnknown}} |
composite, iterationComposite, and spacing options |
{{CompatNo}} | {{CompatNo}} | {{CompatNo}} | {{CompatNo}} | {{CompatNo}} | {{CompatNo}} |
| Feature | Android | Android Webview | Chrome for Android | Firefox Mobile (Gecko) | Firefox OS | IE Mobile | Opera Mobile | Safari Mobile |
|---|---|---|---|---|---|---|---|---|
| Basic support | {{CompatUnknown}} | {{CompatChrome(39.0)}} | {{CompatChrome(39.0)}} | {{ CompatGeckoMobile("48.0")}} | {{CompatUnknown}} | {{CompatUnknown}} | {{CompatUnknown}} | {{CompatUnknown}} |
id option |
{{CompatNo}} | {{CompatChrome(50.0)}} | {{CompatChrome(50.0)}} | {{ CompatGeckoMobile("48.0")}} | {{CompatUnknown}} | {{CompatUnknown}} | {{CompatUnknown}} | {{CompatUnknown}} |
composite, iterationComposite, and spacing options |
{{CompatNo}} | {{CompatNo}} | {{CompatNo}} | {{CompatNo}} | {{CompatNo}} | {{CompatNo}} | {{CompatNo}} | {{CompatNo}} |