【问题标题】:How do i make a function repeat in javascript with ajustable timings我如何在 javascript 中以可调整的时间重复函数
【发布时间】:2020-05-06 07:56:57
【问题描述】:

我想让这段代码工作:

let wait = 1;

function speedup(){
  wait = 0.5
}

// I want it so that if the speed-up button is pressed the code repeats but faster
<html>
<body>
    <a onclick="speedup()">speed up</a>
    <p id="p">0</p>
</body>
</html>

有人可以帮忙吗?我需要将它用于用户可以按下按钮以加快 igc 漫长过程的游戏。

【问题讨论】:

  • "按钮被按下,代码重复但更快" 你指的是哪个代码,现在它是如何重复的?

标签: javascript loops timing


【解决方案1】:

你可以这样做:

let delay = 1000; // time in millisecond
let intervalId;

function speedUp() {
  delay = Math.max(0, delay - 100); // don't get negative time
  interval();
}

function interval() {
  // Clear existing interval
  if (intervalId) {
    clearInterval(intervalId);
  }

  intervalId = setInterval(() => {
    // run some code
  }, delay);
}

// Setup the first interval
interval();

// Call speedUp will cancel the previous setInterval, and start another one, 100msec faster

【讨论】:

    猜你喜欢
    • 2016-04-04
    • 2023-03-02
    • 2013-08-17
    • 2021-09-06
    • 1970-01-01
    • 2015-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多