我的函数有这个问题,我试图将一些颜色(预定义)随机化到我的 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 的颜色。
而且我不知道如何计算每种颜色。
I have 创建了一个小提琴
我最终得到了这个:http://jsfiddle.net/GXVUE/1/
它只是将统计数据输出到 class="stats" 的 div 中。
(function($){
var colors = ['#f00', '#0f0', '#00f']
, colorsUsed = {}
, $divsToColor = $('.random-color');
$divsToColor.each(function(){
var $div = $(this)
, randomColor = colors[ Math.floor( Math.random() * colors.length ) ];
$div.css('backgroundColor', randomColor);
// Keeps track of how often a color is used...
if( colorsUsed[randomColor] ){
colorsUsed[randomColor]++;
} else {
colorsUsed[randomColor] = 1;
}
});
// This reads through the stats.
$('.stats').html(function(){
var out = [];
for( var color in colorsUsed ){
out.push( color + ' was used ' + colorsUsed[color] + ' times.' );
}
return out.join('<br>');
});
})(jQuery);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)