JavaScript | Temporizador

requisitos previos:

En esta publicación, se ha mostrado un temporizador que muestra la cuenta regresiva y su color/mensaje cambia después de cada período de tiempo específico.

Sintaxis:

setTimeout(function, milliseconds, parameter1, ...)

Parámetro: acepta algunos parámetros que se especifican a continuación:

  • función: Es la función que se ejecutará.
  • milisegundos: Es la cantidad de milisegundos a esperar antes de ejecutar el código. Es opcional y su valor por defecto es cero (0).
  • parámetro1: Son parámetros adicionales para pasar a la función y es opcional.

Valor de retorno: Devuelve un número que representa el valor de ID del temporizador que se establece.

Código JavaScript que configura el temporizador de 2 minutos y cuando se agota el tiempo, la alerta de la página «se agota». El método setTimeout() llama a una función o evalúa una expresión después de un número específico de milisegundos.

Código JavaScript para implementar el temporizador:

<html>
  
<head>
    <script>
        //set minutes
        var mins = 2;
  
        //calculate the seconds
        var secs = mins * 60;
  
        //countdown function is evoked when page is loaded
        function countdown() {
            setTimeout('Decrement()', 60);
        }
  
        //Decrement function decrement the value.
        function Decrement() {
            if (document.getElementById) {
                minutes = document.getElementById("minutes");
                seconds = document.getElementById("seconds");
  
                //if less than a minute remaining
                //Display only seconds value.
                if (seconds < 59) {
                    seconds.value = secs;
                }
  
                //Display both minutes and seconds
                //getminutes and getseconds is used to
                //get minutes and seconds
                else {
                    minutes.value = getminutes();
                    seconds.value = getseconds();
                }
                //when less than a minute remaining
                //colour of the minutes and seconds
                //changes to red
                if (mins < 1) {
                    minutes.style.color = "red";
                    seconds.style.color = "red";
                }
                //if seconds becomes zero,
                //then page alert time up
                if (mins < 0) {
                    alert('time up');
                    minutes.value = 0;
                    seconds.value = 0;
                }
                //if seconds > 0 then seconds is decremented
                else {
                    secs--;
                    setTimeout('Decrement()', 1000);
                }
            }
        }
  
        function getminutes() {
            //minutes is seconds divided by 60, rounded down
            mins = Math.floor(secs / 60);
            return mins;
        }
  
        function getseconds() {
            //take minutes remaining (as seconds) away 
            //from total seconds remaining
            return secs - Math.round(mins * 60);
        }
    </script>
</head>
<!-- onload function is evoke when page is load -->
<!--countdown function is called when page is loaded -->
  
<body onload="countdown();">
    <div>
        Time Left ::
        <input id="minutes" type="text" style="width: 10px;
             border: none; font-size: 16px; 
            font-weight: bold; color: black;"><font size="5"> :
                        </font>
        <input id="seconds" type="text" style="width: 20px;
                        border: none; font-size: 16px;
                        font-weight: bold; color: black;">
    </div>
</body>
  
</html>

Salida:
Después de hacer clic en el botón Ejecutar

, después de un tiempo,

cuando queda menos de 1 minuto,

cuando el temporizador está arriba,

Publicación traducida automáticamente

Artículo escrito por Naman_Garg y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

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