javascript - setTimeout() 不适用于更改间隔

标签 javascript jquery

我有一个类 test,其 background-color 我想更快地在 limegreen 之间切换更快。

为此,我使用了 for 循环变量并将其传递给包含 setTimeout() 的函数,但它不起作用。

(这不是一个重复的问题。所说的“原始”是关于一个简单的 setTimeout() 而这个问题是关于一个 setTimeout() for 循环。我知道该问题的答案可能会间接回答我的问题,但问题本身并不相同)

$(document).ready(function() {

  for (var i = 0; i < 20; i++) {
    delay(i);
    $(".test").css('background-color', 'lime');
  }

});

function delay(i) {
  setTimeout(function() {
    $(".test").css('background-color', 'green');
  }, 1000 - 50 * i);
}
.test {
  width: 300px;
  height: 300px
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="test"></div>

最佳答案

试试这个方法:

for(var i=0;i<20;i++)
{
  delay(i);
}

function delay(i) {
  setTimeout(function() {
      if (i%2 == 0) {
        $(".test").css('background-color', 'green');      
      } else {
        $(".test").css('background-color', 'lime');
      }

  }, 1000 - 50 * i);
}

关于javascript - setTimeout() 不适用于更改间隔,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49866255/

相关文章:

javascript - 在javascript中填充多维数组

javascript - AngularJS 指令 templateUrl 不更新

javascript - Firebase 无法使用电子邮件和密码注册用户

javascript - 如果从右悬停然后动画从右到左和反转

javascript - 对具有多个实例的每个单个元素的 jQuery 操作

javascript - 使用 JavaScript Cookie 的建议

javascript - Treeview onNodeSelected 未触发

javascript - 如何在 Javascript 字符串中递增变量

javascript - 如何将数组值从输入字段传递给函数 onChange?

javascript - 如何使用 Javascript 将 PHP 插入网页