【发布时间】:2021-12-15 21:37:41
【问题描述】:
我正在使用 JavaScript 更改网页上的颜色。它从数组中随机选择颜色以创建渐变,并每隔几秒更改这些颜色。
现在背景突然改变了。我希望背景颜色随着过渡而改变。
我试过BodyColor.style.transition ~ ,但没用。
const colors = [
"#ff5e57",
"#d2dae2",
"#485460",
"#ffa801",
"#ffd32a",
"#ff3f34"
];
const BodyColor = document.querySelector("body");
function randomNum(array) {
if (!array) {
var array = [];
}
let n = Math.floor(Math.random() * 18);
if (array.length < 2 && array.indexOf(n) < 0) {
array.push(n);
return randomNum(array);
} else {
return array;
}
}
function changeBackground() {
BodyColor.style.background = `linear-gradient(to right, ${colors[randomNum()[0]]},${colors[randomNum()[1]]})`;
}
changeBackground();
setInterval(changeBackground, 2000);
【问题讨论】:
-
你能解释一下“不工作”是什么意思吗?另外,您确定正在调用
changeBackground()吗?我会在你的changeBackground()中添加一个alert("hello world!");,看看它是否会在页面刷新时弹出或触发函数调用。 -
一个现已删除的答案指向这篇关于 transitioning gradients 的博文。您能否澄清您的问题是否是您想要渐变的平滑过渡?因为现在你的问题说它不起作用,但背景正在发生变化,它只是突然发生了。
-
我想在
changeBackground()中添加过渡,但我不知道该怎么做......
标签: javascript css css-transitions linear-gradients