• +34 685 967 885
  • +34 695 898 191
  • antgarprats@gmail.com
  • Antonio García Prats

temporizador regresivo con javascript

Temporizador regresivo con Javascript

En este proyecto, crearemos un countdown timer (temporizador regresivo con javascript) que se muestra centrado en la pantalla. Este temporizador será interactivo y dinámico, permitiendo a los principiantes en programación aprender conceptos básicos de HTML5, CSS3, y JavaScript.

Objetivo del proyecto: temporizador regresivo con javascript

HTML5: Definir la estructura del temporizador.

CSS3: Aplicar estilos para centrar el temporizador en la pantalla y hacerlo visualmente atractivo.

JavaScript: Programar la funcionalidad que controla la cuenta regresiva y la actualiza en tiempo real.

A continuación, vamos a detallar el código paso a paso.

Código HTML (estructura)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Countdown Timer</title>
    <link rel="stylesheet" href="styles.css">
</head>
<body>
    <div class="countdown-container">
        <h1 id="countdown">00:00:00</h1>
    </div>
    <script src="script.js"></script>
</body>
</html>

Explicación:

<!DOCTYPE html>: Declara que estamos usando HTML5.

<html lang="en">: Define el idioma de la página como inglés.

<head> y <meta>: Configura el conjunto de caracteres (UTF-8) y el diseño adaptable (viewport) para móviles y escritorio.

<link>: Conecta el archivo CSS externo styles.css.

<div class="countdown-container">: Contiene el temporizador, que es un elemento h1 donde se mostrará la cuenta regresiva.

<script src="script.js"></script>: Conecta el archivo JavaScript externo que contiene la lógica del temporizador.

Código CSS (estilos)

/* styles.css */
body {
    margin: 0;
    display: flex;
    justify-content: center;
    align-items: center;
    height: 100vh;
    background: linear-gradient(to bottom right, #282c34, #61dafb);
    font-family: Arial, sans-serif;
    color: white;
}

.countdown-container {
    text-align: center;
}

#countdown {
    font-size: 4rem;
    font-weight: bold;
    text-shadow: 2px 2px 5px rgba(0, 0, 0, 0.5);
}

Explicación:

body (selector global):

Usa un diseño flexbox para centrar el contenido horizontal y verticalmente.

Aplica un gradiente de color como fondo.

.countdown-container: Centra el texto con text-align: center.

#countdown:

Configura un tamaño de fuente grande (4rem) para destacar la cuenta regresiva.

Añade un efecto de sombra al texto con text-shadow para un estilo más moderno.

Código JavaScript (funcionalidad)

// script.js

// Establece el tiempo inicial del temporizador en segundos (por ejemplo, 1 minuto)
let countdownTime = 60;

// Selecciona el elemento HTML donde se mostrará el temporizador
const countdownElement = document.getElementById('countdown');

// Función para convertir segundos a formato HH:MM:SS
function formatTime(seconds) {
    const hours = String(Math.floor(seconds / 3600)).padStart(2, '0');
    const minutes = String(Math.floor((seconds % 3600) / 60)).padStart(2, '0');
    const secs = String(seconds % 60).padStart(2, '0');
    return `${hours}:${minutes}:${secs}`;
}

// Función principal que ejecuta la cuenta regresiva
function startCountdown() {
    const timerInterval = setInterval(() => {
        // Actualiza el texto del temporizador
        countdownElement.textContent = formatTime(countdownTime);

        // Verifica si el tiempo ha llegado a cero
        if (countdownTime <= 0) {
            clearInterval(timerInterval); // Detiene el temporizador
            countdownElement.textContent = "Time's up!";
        } else {
            countdownTime--; // Resta un segundo
        }
    }, 1000); // Ejecuta cada segundo
}

// Inicia el temporizador al cargar la página
startCountdown();

Explicación:

let countdownTime = 60;: Define el tiempo inicial en segundos (1 minuto).

document.getElementById('countdown');: Obtiene el elemento HTML donde se mostrará la cuenta regresiva.

formatTime(seconds):

Convierte los segundos totales a un formato legible HH:MM:SS.

Usa String.padStart() para asegurarse de que cada número tenga dos dígitos.

startCountdown():

Usa setInterval() para ejecutar la lógica cada segundo.

Actualiza el contenido del elemento h1 con el tiempo restante.

Si el tiempo llega a cero, detiene el temporizador (clearInterval) y muestra «Time’s up!».

startCountdown();: Llama a la función para iniciar la cuenta regresiva al cargar la página.


countdown timer
countdown timer

Al ejecutar este código, verás un temporizador centrado en la pantalla que cuenta regresivamente desde 1 minuto. Cuando llegue a 0, mostrará el mensaje «Time’s up!». Este proyecto ayuda a entender conceptos clave de manipulación del DOM, temporizadores en JavaScript, y diseño responsivo con CSS.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *