【问题标题】:Stop a function on Javascript停止 Javascript 上的函数
【发布时间】:2019-11-24 01:23:18
【问题描述】:

我是 JS 的初学者。我想编写一个函数,使主体在红色和白色之间交替背景颜色约 5 秒。我已经写了这段代码:

var x = 1;

function alarma() {
    setInterval(cambio, 200);

    function cambio() {
        if (x == 1) {
            $("body").css("background-color", "red");
            x = 2;
        }
        else {
            $("body").css("background-color", "white");
            x = 1;
        }
    }
}

我测试了代码,它工作了,但我不知道如何只执行 5 秒的函数。

知道如何解决这个问题吗?

谢谢!

【问题讨论】:

  • setInterval 开始一个间隔。你试过clearInterval吗?
  • 如果我想实现这种效果,我会改用 CSS 动画来交替颜色,应用它,然后在五秒钟后将其移除。
  • 我是初学者,所以上面的问题对我来说不是很清楚。相反,尼克的解决方案正是我所需要的。

标签: javascript setinterval


【解决方案1】:

您可以使用以下代码,将您的时间间隔分配给 interval 变量,然后使用 setTimeout 在 5 秒后清除该时间间隔。

function alarma() {
  const interval = setInterval(cambio, 200);
  
  setTimeout(() => {
    clearInterval(interval);
  }, 5000);
  
  let x = 1;
  
  function cambio() {
    if (x == 1) {
      $("body").css("background-color", "red");
      x = 2;
    } else {
      $("body").css("background-color", "white");
      x = 1;
    }
  }
}

alarma();
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-01
    • 1970-01-01
    • 2012-03-29
    • 2020-03-21
    • 1970-01-01
    相关资源
    最近更新 更多