使用While循环更改背景颜色

时间:2018-01-26 11:55:14

标签: javascript

我写了一段代码,所以提示会出现一个提示颜色的提示,并使用一个循环,它会一直询问并不断更改颜色,直到给出一个空字符串。如果取出循环,它会改变颜色但是在背景中添加循环时,颜色不会改变。是否存在我遗漏的逻辑错误?

let empty=false;
while(empty===false){
  const colour= prompt("Give me a colour");
  document.body.style.backgroundColor=colour;
  if(colour===""){
    empty=true;
  }
}

1 个答案:

答案 0 :(得分:3)

JavaScript阻止重新绘制文档。

直到JS完成(直到colour""之前它才会完成),浏览器没有机会更新显示以反映您对DOM所做的更改。

您无法使用while循环。改为使用setTimeout代替。



function update_background() {
    const colour = prompt("Give me a colour");
    document.body.style.backgroundColor=colour;
    if (colour) {
        setTimeout(update_background);
    }
}

update_background();