Forrest Gump
JavascriptCronómetro avanzado
Nuestro amigo Forrest Gump, animado por su madre, nos propuso realizarle un cronómetro avanzado, con tres botones (inicio, pausa y reinicio) que permitiera controlar el tiempo en que estaba corriendo y descansando. Aquí podéis ver con detalle en qué consistía
Enunciado del reto:
El reto decía:
Ada y Edu:
Hola, soy Forrest, Forrest Gump. Mi mamá me ha dicho que os escriba para pediros que me hagáis un cronómetro para saber cuánto corro. Yo le he dicho que no necesito saberlo porque me da igual, pero ha insistido así que os lo digo.
Quiero que el cronómetro tenga un botón para arrancarlo, otro para pausarlo, otro para pararlo y otro para ponerlo a cero. Como todos los cronómetros. Y que cuando lo arranque y lo pause me muestre una línea en la página para saber en qué momento lo he pausado y en qué momento lo he vuelto a arrancar. Si paro y reinicio debe borrarse el registro de la página. Nada más. Gracias.
Al igual que en el reto anterior, únicamente os proponemos una solución… y una solución “pulida”:
- Creamos dos variables para recoger, por un lado, el reloj que controla las horas; y por otro, el cronómetro. Estas dos variables podían iniciarse, pararse y actualizarse en el momento que necesitemos.
- Creamos tres funciones asociadas a los tres botones que inician, paran y resetean el cronómetro. Las dos primeras, además, muestran el resultado en pantalla.
- Creamos una función más que se encarga de poner en marcha el cronómetro y actualizar el campo correspondiente; a esta función la llamamos cada segundo.
Además, os ofrecemos un segundo vídeo donde se pulen todos los fallos de funcionalidad y se limpia un poco el código para que quede más modularizado.
Pero como siempre, recordad, ¡no hay una única solución al problema; hay soluciones mejores y soluciones peores!
¿Qué aprenderás en el vídeo?
En este vídeo veremos:
- Cómo trabajar con variables globales.
- Cómo crear variables para controlar eventos de tiempo mediante setInterval y clearInterval.
- Cómo mostrar un reloj en pantalla con la hora actual.
- Cómo utilizar una variable de tipo Date para crear un cronómetro.
- Cómo trabajar con la variable que controla el cronómetro para iniciarlo y pararlo.
- Cómo reutilizar el código que se repite creando una función.
- Cómo mostrar la información textual en una etiqueta HTML.
Vídeos y código fuente
¡¿A qué esperas?! ¡Echa un ojo al vídeo de la solución sin pulir!
Y aquí el código depurado y pulido 😉
Y por supuesto, cómo no:
Código fuente de la solución
¡Ups! Este contenido es solo para codelovers, ¿no te has registrado aún? ¡Hazlo ahora!¿Tú cómo lo habrías hecho? ¡Espero tus propuestas en los comentarios!
Y si quieres compartir código, te recomiendo que utilices alguna herramienta online de testing de código como Codepen, JSFiddle, PlayCode, etc. o repositorios como GitHub, GitLab, BitBucket…
Deja una respuesta
Lo siento, debes estar conectado para publicar un comentario.