1 回答

TA貢獻(xiàn)1858條經(jīng)驗(yàn) 獲得超8個(gè)贊
問(wèn)題是因?yàn)槟脕?lái)定義setbackground()
函數(shù)的語(yǔ)法不正確。您已將其放置在 jQuery 對(duì)象中。該函數(shù)也從未被調(diào)用。您應(yīng)該將其定義為獨(dú)立函數(shù)并在頁(yè)面加載時(shí)調(diào)用它。
此外,您還可以對(duì)邏輯進(jìn)行一些改進(jìn)。
使用
addEventListener()
超過(guò)設(shè)置onclick
或其他onX
事件屬性。在定義數(shù)組本身的同時(shí)聲明數(shù)組的元素。
使用數(shù)組來(lái)保存背景顏色,而不是對(duì)語(yǔ)句進(jìn)行硬編碼
if
。在遞增計(jì)數(shù)器時(shí)使用模運(yùn)算符,以節(jié)省必須編寫邏輯來(lái)重置的操作
0
如果您想要重復(fù)更新背景顏色,就像對(duì)圖像所做的那樣,請(qǐng)將調(diào)用放在函數(shù)
setTimeout()
中setbackground()
。直接使用
document.body
而不是通過(guò)標(biāo)簽名獲取
$(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();
});
添加回答
舉報(bào)