У меня есть скрипка, в которой через каждую секунду я меняю цвет фона на другой цвет.
Мне интересно, какие изменения мне необходимо внести в код Javascript ниже, как присутствует в скрипке, чтобы не было изменения цвета через 10 секунд. Код JS, который я использую:
var i = 0;
function change() {
var doc = document.getElementById("background");
var color = ["black", "blue", "brown", "green", "red", "yellow", "white", "pink", "purple", "orange"];
doc.style.backgroundColor = color[i];
i = (i + 1) % color.length;
}
myVar = setInterval(change, 1000);
html,
body {
border: 0;
margin: 0;
height: 100%;
min-height: 100%;
}
.container {
width: 100% !important;
}
#background {
width: 100%;
height: 100%;
}
<div id="background">
</div>
очистить интервал через 10 секунд с тайм-аутом
Попробуй это:
var i = 0;
function change() {
var doc = document.getElementById("background");
var color = ["black", "blue", "brown", "green", "red", "yellow", "white", "pink", "purple", "orange"];
doc.style.backgroundColor = color[i];
i = (i + 1) % color.length;
}
myVar = setInterval(change, 1000);
setTimeout(() => {
clearInterval(myVar);
}, 10000);
html,
body {
border: 0;
margin: 0;
height: 100%;
min-height: 100%;
}
.container {
width: 100% !important;
}
#background {
width: 100%;
height: 100%;
}
<div id="background">
</div>
Что-то вроде этого?
var i = 0;
var doc = document.getElementById("background");
var color = ["black", "blue", "brown", "green", "red", "yellow", "white", "pink", "purple", "orange"];
function change() {
if (i < 9) {
doc.style.backgroundColor = color[i];
i = (i + 1);
} else {
doc.style.backgroundColor = color[i];
clearInterval(myVar);
}
}
myVar = setInterval(change, 1000);
html,
body {
border: 0;
margin: 0;
height: 100%;
min-height: 100%;
}
.container {
width: 100% !important;
}
#background {
width: 100%;
height: 100%;
}
<div id="background">
</div>
i
никогда не увеличивают!
setTimeout(function () {
clearInterval(myVar)
}, 10000)
change
. Затем очистите интервал с помощьюclearInterval
когда эта переменнаяchange
10.