2 回答

TA貢獻(xiàn)1777條經(jīng)驗(yàn) 獲得超3個(gè)贊
您可以通過乘以延遲來解決此問題,例如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>

TA貢獻(xiàn)1824條經(jīng)驗(yàn) 獲得超5個(gè)贊
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>
添加回答
舉報(bào)