Ok, debes estar debatiendo entre usar
"setInterval" o "requestAnimationFrame"
para lo que quieres animar;
pero para continuar, te voy a dar una opción más.
Verás, en Chrome, Firefox y en IE 10+,
en realidad hay una manera de hacer animaciones en CSS,
sin escribir ningún código en JavaScript.
Vamos a poner comentarios en el código que acabamos de escribir,
y probar esto para la animación de "Oh noes".
Pondré un comentario que incluya todas estas líneas.
Comenzaremos por añadir una etiqueta "" a la página,
y luego voy a añadir algo que parece una regla de CSS,
pero en realidad es nuestra definición de la animación.
Así que escribo: "@keyframes" y luego
un nombre para la animación: "getbigger",
y luego pongo unas llaves.
Para hacer una animación simple que vaya de
un estado a otro estado, definiremos "form" y "to".
Dentro de "from" vamos a escribir el estado inicial
de la propiedad de CSS.
Recuerda que lo configuramos en 50px al inicio.
Dentro de "to" vamos a escribir a dónde
debería llegar la propiedad de CSS.
Aquí le ponemos 300px, que es donde terminamos.
¿Recuerdan?
Ahora que hemos definido una animación,
tenemos que decirle al navegador qué elemento
debe usar para esta animación.
Así que en realidad voy a añadir una regla normal de CSS
para "Oh noes".
Y aquí dentro voy a especificar el nombre de la animación,
que es "getbigger",
y luego la duración de la animación,
tres segundos.
Dependiendo de qué navegador estén usando,
algunos de ustedes estarán pensando:
¡Wow! ¡Genial, funciona!
Sin embargo, en otros navegadores, como Safari o Chrome,
probablemente no esté funcionando.
Esto se debe a lo que se llama "vendor prefixes", (prefijos de fabricante).
Algunas veces, el navegador decide
implementar una nueva característica,
pero el fabricante pone un prefijo a esa característica,
para indicar que podría cambiar más tarde.
Es sólo un acercamiento del navegador a esa característica.
Para hacer que esto funcione en Chrome,
si es que todavía no lo hace, tenemos que replicar
todo lo que hicimos antes,
y ponerle "-webkit-" aquí adelante.
Así que tenemos que replicar esta parte,
y poner "-webkit-" aquí.
Y luego aquí, replicaremos esto, y ponemos "-webkit-", "-webkit-",
¡Wow, bien!
Ahora se hace grande en todos los navegadores.
Esperemos que para el momento en que veas esta guía paso a paso,
los prefijos ya no sean necesarios,
pero es bueno que sepas que existen,
porque tal vez tengas que usarlos algún día
para alguna otra característica.
Hay una manera más en CSS de hacer animaciones,
y es mediante la propiedad "transition".
Esta propiedad le dice al navegador cómo hacer una transición suavemente,
de una propiedad a la siguiente.
Digamos que queremos que el tamaño de la fuente
del tiempo que queda, se haga más grande,
cuando pasas el ratón por encima.
Podríamos hacer eso en JavaScript,
asignando un detector de eventos, para el evento "mouse over"
y luego usar "requestAnimationFrame".
para incrementar la propiedad de tamaño de la fuente cada vez,
pero también podemos hacer todo eso usando solamente CSS.
Vamos a pensar, ¿cómo podríamos cambiar
el tamaño de la fuente de manera normal,
para que sea más grande, cuando pasas por encima, usando CSS?
Podemos hacerlo con una regla "hover".
Escribimos "#countdown:hover,"
y luego, "font-size: 150px".
Ok, y ahora sólo le tenemos que decir al navegador,
que haga la transición en la propiedad de tamaño de la fuente,
en cuánto tiempo debe hacer la transición y
qué función de tiempo usar.
Así que le decimos: "transition: font-size 1s linear;".
Ahora, deberías pausar la guía paso a paso,
tratar de pasar el ratón sobre el texto y ver qué pasa.
Si estás usando Chrome, Firefox o IE 10+,
deberías ver que se hace grande suavemente.
Y no necesitas ningún prefijo de fabricante para esta técnica.
Hay mucho más que puedes hacer
con animaciones y transiciones en CSS,
y los navegadores son muy buenos para reproducirlas rápidamente.
Así que te animo a que las explores a profundidad.