1 回答
TA贡献1858条经验 获得超8个赞
问题是因为您用来定义setbackground()
函数的语法不正确。您已将其放置在 jQuery 对象中。该函数也从未被调用。您应该将其定义为独立函数并在页面加载时调用它。
此外,您还可以对逻辑进行一些改进。
使用
addEventListener()
超过设置onclick
或其他onX
事件属性。在定义数组本身的同时声明数组的元素。
使用数组来保存背景颜色,而不是对语句进行硬编码
if
。在递增计数器时使用模运算符,以节省必须编写逻辑来重置的操作
0
如果您想要重复更新背景颜色,就像对图像所做的那样,请将调用放在函数
setTimeout()
中setbackground()
。直接使用
document.body
而不是通过标签名获取
$(document).ready(function() {
let i = 0;
let images = [
"url(http://www.cyrill-kuhlmann.de/verve/img/logo_1.svg)",
"url(http://www.cyrill-kuhlmann.de/verve/img/logo_2.svg)",
"url(http://www.cyrill-kuhlmann.de/verve/img/logo_3.svg)",
"url(http://www.cyrill-kuhlmann.de/verve/img/logo_4.svg)"
];
let backgroundColours = ['#FAED96', '#D27DFA', '#6CFA64', '#8370FA']
function changeImage() {
let el = document.getElementById('header');
el.style.backgroundImage = images[i];
i = ++i % (images.length - 1)
setTimeout(changeImage, 3000);
}
changeImage();
function setbackground() {
let index = Math.round(Math.random() * 4);
document.body.style.backgroundColor = backgroundColours[index];
setTimeout(setbackground, 2000);
}
setbackground();
});
添加回答
举报