You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现按下键盘E键时增加倒计时时长?

实现按E键延长倒计时功能

先看修改后的完整代码:

JavaScript 代码

// 初始时间和延长时长改为数字类型,避免字符串运算问题
var generalTime = 12;
var extendTime = 5;
// 将定时器变量提升为全局,方便E键事件中访问
var downloadTimer;

document.addEventListener('keydown',function(e){
    // 按下Enter键启动倒计时
    if(e.keyCode === 13){
        // 防止重复点击Enter创建多个定时器,先清掉之前的
        if(downloadTimer) clearInterval(downloadTimer);
        
        downloadTimer = setInterval(function(){
            if(generalTime <= 0){
                clearInterval(downloadTimer);
                document.getElementsByClassName("quote")[0].innerHTML = "Finished";
            } else {
                document.getElementsByClassName("quote")[0].innerHTML = generalTime;
                // 时间在3-5秒时变红,否则恢复默认颜色
                if(generalTime <= 5 && generalTime >= 3){
                    document.getElementsByClassName("quote")[0].style.color = "red";
                } else {
                    document.getElementsByClassName("quote")[0].style.color = "";
                }
            }
            generalTime -= 1;
        }, 1000);
    }
    // 按下E键增加倒计时时长
    else if(e.keyCode === 69){
        generalTime += extendTime;
        // 立即更新页面显示当前时间
        document.getElementsByClassName("quote")[0].innerHTML = generalTime;
        // 如果时间超过5,恢复默认颜色
        if(generalTime > 5){
            document.getElementsByClassName("quote")[0].style.color = "";
        }
    }
})

HTML 代码

<div class="boxOne">
    <div class="content">
        <p class="quote">Start</p>
    </div>
</div>

关键修改说明

  • 把初始的时间变量从字符串改成数字:原来的"12"和"5"换成12和5,避免字符串减法出现意外结果
  • 全局声明downloadTimer:这样按下E键时能确认定时器状态,也防止重复按Enter创建多个定时器
  • 新增E键(keyCode=69)的处理逻辑:按下时给总时间加延长时长,同时立刻更新页面显示
  • 补充了颜色重置逻辑:当时间跳出3-5秒区间时,把文字颜色恢复默认,避免一直保持红色

内容的提问来源于stack exchange,提问作者Khaled Ahmed Mithun

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 06:30:51