JavaScript percebe o efeito de contagem regressiva de obter o código de verificação

Afirmação:

发送Após clicar , o botão é desativado e uma contagem regressiva aparece. Defina a contagem regressiva de 5 segundos.
Insira a descrição da imagem aqui
Após 5 segundos, o botão é restaurado e pode ser clicado novamente 发送.
Insira a descrição da imagem aqui

Ideias de realização:

  1. Depois que o botão for clicado, desative-o disabledcomotrue
  2. Ao mesmo tempo, o conteúdo dentro do botão mudará, buttone o conteúdo dentro será innerHTMLmodificado
  3. O número de segundos dentro das mudanças, então você precisa usar um cronômetro
  4. Definir uma variável, no cronômetro, vai diminuindo
  5. Se a variável for 0, significa que o tempo acabou, você precisa parar o cronômetro, restaurar a variável e restaurar o estado inicial do botão

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>

Acho que você gosta

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