红色、蓝色、绿色按钮,当按下时,将对应的 div 01、02、03 的颜色更改为指定的颜色。使用 ms 按钮(为方便起见)我为这三个 div 设置时间(延迟)。间隔 (setTimeout) 后的开始按钮将这些 div 的颜色从标准米色更改为橙色。
我希望在按下最后两个按钮后,可以使用红色、蓝色、绿色按钮更改 div 的颜色,如下所示:
- 如果您在 6 秒后按下绿色按钮,颜色将立即变为绿色,因为。3 秒延迟已经过去;- 如果你以这种方式按下红色按钮,那么颜色将在 2 秒内变为红色,因为 对于这个女主角,延迟设置为 8 秒;- 蓝色按钮类似于红色,但在 6 秒后。
function f01(d,s) {
document.getElementById(d).style.background = s;
}
function f02() {
let doc = document.getElementsByClassName('s');
doc[0].value = 8000;
doc[1].value = 12000;
doc[2].value = 3000;
}
function start() {
setTimeout(f03, document.getElementsByClassName('s')[0].value); // 8000 RED
setTimeout(f04, document.getElementsByClassName('s')[1].value); // 12000 BLUE
setTimeout(f05, document.getElementsByClassName('s')[2].value); // 3000 GREEN
f01('d01','beige');
f01('d02','beige');
f01('d03','beige');
}
function f03() {
document.getElementById('d01').style.background = 'orange';
}
function f04() {
document.getElementById('d02').style.background = 'orange';
}
function f05() {
document.getElementById('d03').style.background = 'orange';
}
#d01, #d02, #d03 {width: 122px; height: 40px; background: beige;}
.s {width: 50px; height: 20px; font-size: 12px;}
.test {width: 60px; height: 26px; background: #CCCCCC;}
<button class="test" onclick="f02()">ms</button>
<br><br>
<div id="d01">01</div>
<input class="s" type="number">
<button class="test" onclick="f01('d01','red')">RED</button>
<br><br>
<div id="d02">02</div>
<input class="s" type="number">
<button class="test" onclick="f01('d02','lightblue')">BLUE</button>
<br><br>
<div id="d03">03</div>
<input class="s" type="number">
<button class="test" onclick="f01('d03','green')">GREEN</button>
<br><br>
<button class="test" onclick="start()">start</button>
如何正确地做到这一点,是否有可能具有一些通用功能来替换项目中不同位置的间隔。谢谢你。
首先,扔掉编号的 id(和一般的 id),并通过枚举使用相同的“卡片”元素。所有填充物和所需颜色 - 收集在一个阵列中。
通过计时器。点击开始:
new Date()
另一方面,绘制按钮只需
btn_clicked = true
在单击时暴露其对象。并另外比较从开始经过的时间。如果花费超过timeout
- 立即绘制块。