为了账号安全,请及时绑定邮箱和手机立即绑定

使用函数慢慢增加背景颜色的数量

使用函数慢慢增加背景颜色的数量

GCT1015 2022-05-26 17:08:03
我正在尝试使用以下代码慢慢增加背景的颜色:<script type="text/javascript">        let container = document.querySelector(".container")        for(let i = 0 ; i<50; i++) {            setTimeout(function() {                container.style.background = `rgb(${i} , ${i}, ${i})`},                1000);            }</script>我不确定为什么它不起作用。当我使用 console.log(i) 时,它似乎没有正确迭代。我希望它在每次迭代时暂停。我该怎么做呢?
查看完整描述

2 回答

?
慕森王

TA贡献1777条经验 获得超3个赞

您可以通过乘以延迟来解决此问题,例如i:setTimeout


for (let i = 0; i < 50; i++) {

   setTimeout(function() {

      container.style.background = `rgb(${i} , ${i}, ${i})`

   }, 1000 * i);  // <----- like this

}

演示:

let container = document.querySelector(".container")

for (let i = 0; i < 255; i++) {

  setTimeout(function() {

    //var randomColor = Math.floor(Math.random() * 12777215).toString(16);


    container.style.background = `rgb(${i} , ${i}, ${i})`

    

  }, 1000 * i);

}

<div class="container" style="width:100px;height:100px"></div>

演示(从黑色到白色):


let container = document.querySelector(".container")

let container2 = document.querySelector(".container2")

for (let i = 0; i < 256; i++) {

  setTimeout(function() {

    container.style.background = `rgb(${i} , ${i}, ${i})`

    container2.textContent = `rgb(${i} , ${i}, ${i})`

  }, 50 * i);

}

<div class="container" style="width:200px;height:100px"></div>

<div class="container2" style="width:200px;height:100px"></div>


查看完整回答
反对 回复 2022-05-26
?
沧海一幻觉

TA贡献1824条经验 获得超5个赞

setTimeout 是异步的


<script type="text/javascript">

    let container = document.querySelector(".container")

    let i = 0;

    function nextTimeout(){

      setTimeout(function() {

            container.style.background = `rgb(${i} , ${i}, ${i})`;

            i++;

            if(i<50){

              console.log('next');

              nextTimeout()

            }

          },

      1000);


    }

    nextTimeout();                 

</script>


查看完整回答
反对 回复 2022-05-26
  • 2 回答
  • 0 关注
  • 85 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信