我有我的功能這個問題,我試圖隨機化一些顏色(預定義)到我的div和計數每次使用顏色。jquery隨機顏色foreach div
這裏是我的html:
<div class="change_color2" id="rand_1"></div>
<div class="change_color2" id="rand_2"></div>
<div class="change_color2" id="rand_3"></div>
<div class="change_color2" id="rand_4"></div>
<div class="change_color2" id="rand_5"></div>
而且一些div那將不得不爲背景的隨機顏色:
<div class="change_color"></div>
,這是我的js代碼:
function colorfy_me() {
var myColors = [
'#543326', '#5EC631', '#A9D7DC', '#003946', '#E0D8C8'
];
shuffleArray(myColors);
var i = 1;
$('div.change_color').each(function() {
$(this).css('background-color', myColors[i]);
i = (i + 1) % myColors.length;
});
}
function shuffleArray(array) {
for (var i = array.length - 1; i > 0; i--) {
var j = Math.floor(Math.random() * (i + 1));
var temp = array[i];
array[i] = array[j];
array[j] = temp;
}
return array;
}
但問題是,它會隨機更改顏色組中前5個div的顏色。 而且我不知道如何計算每種顏色。
爲什麼要洗牌數組?只需從數組中選取一個隨機顏色即可。你不允許以相同的順序重複相同的顏色嗎? – crush
我不清楚問題是什麼。你想要什麼不同? –
您可以計算每種顏色的使用頻率,因爲您正在按順序分配它們。它是#uses = floor(#elements/#colors)+(indexOfColor <#elements%#colors)? 1:0'。無論是使用「樓層(#elements /#顏色)」還是「樓層(#元素/#顏色)+ 1」時間,都會使用顏色。 –