





Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
describe los programas esenciales para la programacion
Tipo: Esquemas y mapas conceptuales
1 / 9
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!






Actividad Práctica Para llevar a cabo el desarrollo del componente correspondiente a la capa de presentación es necesario conocer algunas tecnologías como HTML , CSS y JavaScript , las dos primeras fueron vistas en la guía anterior, en esta guía se realizará un ejercicio práctico cuyo objetivo es mostrar la manera en la que JavaScript dota de interactividad a HTML y CSS. El ejercicio consistirá en crear un cronometro totalmente funcional el cual tendrá tres botones ( play , pause y reset ), para lograr este objetivo será necesario el uso de funciones , condicionales , variables , objetos , manejo de eventos y lo más importante el acceso al DOM a través del objeto document. Desarrollo del Cronómetro Antes de iniciar el desarrollo del cronómetro se debe crear la siguiente estructura de archivos : Dado que ya se tiene un dominio básico de HTML y CSS, no se explicará en detalle el contenido de los archivos index.html y styles.css. HTML El contenido del archivo index.html es el siguiente:
Mi Cronometro
El contenido del archivo styles.css es el siguiente: *{ box-sizing: border-box; margin: 0 ; padding: 0 ; } .container{ width: 100vw; height: 100vh; background-color: darkcyan; display: flex; justify-content: center; align-items: center; } .cronometro { width: 40%; height: 60%; background-color: white; border: 3px solid rgba( 0 , 0 , 0 , 0.8); display: flex; align-items: center; justify-content: center; flex-direction: column; } .tablero{ width: 60%; height: 50%; background-color: rgba( 0 , 0 , 0 , 0.7); border: 3px solid rgba( 0 , 0 , 0 , 0.8); display: flex; align-items: center; justify-content: center; } .tablero p { color: white; font-size: 100px; display: flex; align-items: center; justify-content: center;
.botones{ width: 60%; height: 20%; background-color: crimson; border: 3px solid rgba( 0 , 0 , 0 , 0.8); border-top: none; display: flex; align-items: center; justify-content: space-around; } .botones button{ background-color: white; padding: 10px 20px; border: 3px solid rgba( 0 , 0 , 0 , 0.9); color: black; font-weight: bold; font-size: 16px; } .botones button:hover{ background-color: white; color: red; } Este archivo simplemente contiene una serie de instrucciones para dotar de estilo al cronómetro , con los estilos agregados el cronómetro lucirá así:
// Funcion Actualizar function formato(numero){ if(numero< 10 ){ return "0"+numero; } else{ return numero; } } function actualizar(){ time.decimas++; if(time.decimas == 10 ){ time.decimas = 0 ; time.segundos++; } if(time.segundos == 60 ){ time.segundos = 0 ; time.minutos++; } tablero.innerHTML = ${formato(time.minutos)}:${formato(time.segundos)}:${time.decimas} if(esta_activo == true){ setTimeout(actualizar, 100 ); } } En este fragmento de código se define la parte principal del cronómetro, primero se tiene una función auxiliar llamada formato , esta función tiene como objetivo transformar dígitos como “8” a “08”, esto resulta útil para darle el formato adecuado al tiempo. La función actualizar tiene 3 partes: ● Primero, dado que el cronómetro avanza en décimas (cada 100 milisegundos) lo que se hace es incrementar el valor de las décimas en uno, esto se realiza con ayuda del operador de incremento. Una vez se ha actualizado el valor de las décimas, se comprueba con condicionales que no se hayan pasado los límites. ● Luego de realizar las comprobaciones se procede a modificar el valor del tablero con el nuevo tiempo, esto se logra con la funcionalidad innerHTML y el elemento capturado. Puede parecer
un poco complicado construir el nuevo valor, pero realmente lo único que se está haciendo es concatenar los valores del tiempo en un solo string. ● Por último se realiza una comprobación para saber si la función actualizar debe ser nuevamente utilizada en caso de que el cronómetro este activo, esto se logra con ayuda de la función predeterminada setTimeout con la cual se programa una nueva ejecución dentro de una décima de segundo. Funciones Botones La cuarta parte del código del archivo index.js es la siguiente: // Funciones Botones function play(){ if(esta_activo == false){ esta_activo = true; actualizar(); } } function pause(){ esta_activo = false; } function reset(){ time.decimas = 0 ; time.segundos = 0 ; time.minutos = 0 ; tablero.innerHTML = ${formato(time.minutos)}:${formato(time.segundos)}:${time.decimas} } Ahora que se tiene la función principal implementada, se procede a implementar las funcionalidades para cada uno de los botones, estos códigos son bastantes simples: ● La función play únicamente cambia el estado del cronómetro y ejecuta la función actualizar para que el tiempo comience a avanzar. ● La función pause simplemente cambia el estado del cronómetro, para detener las actualizaciones del tiempo. ● La función reset actualiza los valores del objeto time a cero y luego actualiza el valor en el tablero.