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

HTML/CSS/JS实现点击OPEN-VAULT打印随机数至STOP停止功能求助

修复方案

现有代码问题清单

  • 按钮onclick绑定不规范:仅声明了函数名未触发执行,也没有实现定时生成随机数的逻辑
  • 未定义全局定时器ID变量,无法在点击STOP按钮时终止定时任务
  • 仅在页面初始化时生成1次随机数,没有循环调用逻辑
  • STOP按钮未绑定点击事件,无法触发停止操作
  • 生成的随机数仅输出到控制台,未写入页面的#amount_print元素展示

完整可运行代码

<!DOCTYPE html>
<html>
<head>
  <title>run game </title>
  <script>
    // 全局存储定时器ID,用于停止任务
    let randomTimer = null;

    function randomIntFromInterval(min, max) { // min and max included
      return Math.floor(Math.random() * (max - min + 1) + min)
    }

    // 启动生成随机数逻辑
    function startGenerate() {
      // 避免重复点击OPEN-VAULT产生多个定时器
      if (randomTimer) clearInterval(randomTimer);
      // 每100毫秒生成一次随机数,可自行调整间隔时间
      randomTimer = setInterval(() => {
        const rndInt = randomIntFromInterval(0, 10000);
        // 控制台打印
        console.log(rndInt);
        // 页面展示
        document.getElementById('amount_print').innerText = rndInt;
      }, 100)
    }

    // 停止生成随机数逻辑
    function stopGenerate() {
      if (randomTimer) {
        clearInterval(randomTimer);
        randomTimer = null;
      }
    }
  </script>
</head>
<body style=" color: black; margin:auto">
  <!-- table border -->
  <div class="borderline">
    <div>
      <h1>$</h1>
      <div class="amount">
        <p id="amount_print" style="font-size: 24px; font-weight: bold; color: green;"></p>
      </div>
      <button class="bail" style="height: 50px; width: 150px; background-color: green" onclick="startGenerate()">OPEN-VAULT</button>
      <button class="bail" style="height: 50px; width: 150px" onclick="stopGenerate()">STOP</button>
    </div>
  </div>
</body>
</html>

实现效果说明

  • 点击OPEN-VAULT按钮后,每100毫秒生成一个0-10000之间的随机数,同时输出到控制台和页面绿色数字区域
  • 点击STOP按钮后立即停止随机数生成
  • 重复点击OPEN-VAULT不会出现多个定时器同时运行的问题

内容的提问来源于stack exchange,提问作者rezy3312

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 17:45:04