簡體   English   中英

使用Javascript更改背景顏色無法正常工作

[英]Changing background color with Javascript not working properly

我已經設置了一個5種顏色的數組,我希望每5秒自動旋轉/顯示一次背景顏色。 我的Javascript代碼有效,但我不明白它是如何顯示顏色的。

正如你所看到的,我希望首先顯示綠色,然后是紅色,藍色,橙色和銀色。 以該順序。 但是,當我加載頁面時,它是完全隨機的。 例如,當頁面加載時它將不顯示任何內容,然后是藍色,紅色,藍色,橙色,紅色,銀色等......完全隨機。 為什么這樣,我做錯了什么?

function changebackground() { 
var colors = ["green", "red", "blue", "orange", "silver"];

        setInterval(function() { 
            var bodyback = Math.floor(Math.random() * colors.length);
            var selectedcolor = colors[bodyback];
            document.body.style.background = selectedcolor;
        }, 5000);
    }
window.onload = changebackground();

你在這里有一個隨機函數導致它

var bodyback = Math.floor(Math.random() * colors.length);
            var selectedcolor = colors[bodyback];

你會想要逐個元素地遍歷數組元素

您正在代碼中選擇隨機索引:

var bodyback = Math.floor(Math.random() * colors.length);

相反,您需要通過存儲當前索引並遞增它來遍歷可能的索引:

function changebackground() { 
    var colors = ["green", "red", "blue", "orange", "silver"];
    var curIndex = 0;

    setInterval(function() { 
        var selectedcolor = colors[curIndex];
        document.body.style.background = selectedcolor;
        curIndex = (curIndex + 1) % colors.length;
    }, 5000);
}
window.onload = changebackground();

確保修改(%)當前索引,以便在到達數組末尾時將其重置為開頭。

我可能會做這樣的事情。

var colors=["green", "red", "blue", "orange", "silver"];
var bodyback=0;

setInterval(function(){
document.body.style.backgroundColor=colors[bodyback];
if(bodyback!=4){
   bodyback++;
}else{
   bodyback=0;}
},5000)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM