您可以使用 JavaScript 编写以下代码来实现您的需求:

HTML:

<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>

CSS:

.box {
  width: 50px;
  height: 50px;
  background-color: grey;
  display: inline-block;
}

JavaScript:

var boxes = document.getElementsByClassName('box');
var timer;

function getRandomBox() {
  var randomIndex = Math.floor(Math.random() * boxes.length);
  return boxes[randomIndex];
}

function changeBoxColor() {
  var box = getRandomBox();
  box.style.backgroundColor = 'green';
  
  var allGreen = Array.from(boxes).every(function(box) {
    return box.style.backgroundColor === 'green';
  });
  
  if (allGreen) {
    clearInterval(timer);
    alert('结束');
  }
}

timer = setInterval(changeBoxColor, 500);

这段代码首先获取了所有class为'box'的div元素,并定义了一个定时器timer。然后,通过getRandomBox函数随机选择一个div元素,并将其背景颜色设置为绿色。接下来,通过Array.from方法将boxes转换为数组,并使用every方法检查是否所有的div的背景颜色都为绿色。如果是,则清除定时器,并弹出警告框显示"结束"。最后,使用setInterval方法每隔0.5秒调用一次changeBoxColor函数,实现每隔0.5秒随机将一个div的背景颜色设置为绿色的效果。


原文地址: https://www.cveoy.top/t/topic/p8jq 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录