--- 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")}} .

Síntaxis

element.animate(keyframes, options); 

Parámetros

keyframes

Un Objeto formateado para representar un conjunto de fotogramas clave.

opciones
Puede ser un entero representando la duración de la animación  (en milisegundos), o un Objeto conteniendo una o más propiedades de sincronización: 
id {{optional_inline}}
Una propiedad única para animar(): a DOMString con la cual se hace referencia a la animación.
{{Page("/en-US/docs/Web/API/Web_Animations_API/Animation_timing_properties", "Properties")}}

Opciones Futuras

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}}
Determina como se combinan los valores entre esta animación y otra, animaciones independientes sin especificar la composición de su propia operación. 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}}
Determina como se construyen los valores de una iteración a otra en esta animación. . Se puede configurar para acumular o reemplazar (ver arriba). Valores predeterminados para reemplazar.
spacing {{optional_inline}}
Determina como los keyframes sin compensación temporal  deben ser distribuidos durante la duración de la animación. 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.

 

Valor de retorno

Returns an {{domxref("Animation")}}.

Ejemplo

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
});

Especificaciones

Specification Status Comment
{{SpecName('Web Animations', '#the-animatable-interface', 'animate()' )}} {{Spec2('Web Animations')}} Initial definition

Compatibilidad en los Navegadores

{{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}}

Ver También