JavaScript se da cuenta del efecto de cuenta regresiva de obtener el código de verificación

Reclamación:

发送Después de hacer clic , el botón se desactiva y aparece una cuenta atrás. Establecer en cuenta regresiva de 5 segundos.
Inserte la descripción de la imagen aquí
Después de 5 segundos, el botón se restaura y se puede hacer clic nuevamente 发送.
Inserte la descripción de la imagen aquí

Ideas de realización:

  1. Después de hacer clic en el botón, desactívelo disabledcomotrue
  2. Al mismo tiempo, el contenido dentro del botón cambiará buttony el contenido dentro se innerHTMLmodificará
  3. La cantidad de segundos en el interior cambia, por lo que debe usar un temporizador
  4. Defina una variable, en el temporizador, siga disminuyendo
  5. Si la variable es 0, significa que se acabó el tiempo, debe detener el temporizador, restaurar la variable y restaurar el estado inicial del botón

Código:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    手机号码: <input type="text"> <button>发送</button>
    <script>
        // 按钮点击之后,会禁用 disabled 为true 
        // 同时按钮里面的内容会变化, 注意 button 里面的内容通过 innerHTML修改
        // 里面秒数是有变化的,因此需要用到定时器
        // 定义一个变量,在定时器里面,不断递减
        // 如果变量为0 说明到了时间,我们需要停止定时器,并且复原按钮初始状态
        var btn = document.querySelector('button');
        var time = 5; // 定义剩下的秒数
        btn.addEventListener('click', function() {
     
     
            btn.disabled = true;
            var timer = setInterval(function() {
     
     
                if (time == 0) {
     
     
                    // 清除定时器和复原按钮
                    clearInterval(timer);
                    btn.disabled = false;
                    btn.innerHTML = '发送';
                    time = 5; // 重新赋值时间变量
                } else {
     
     
                    btn.innerHTML = time + '秒后可再次发送';
                    time--;
                }
            }, 1000);
        });
    </script>

</body>

</html>

Supongo que te gusta

Origin blog.csdn.net/Jack_lzx/article/details/109270555
Recomendado
Clasificación