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();
});
添加回答
舉報