如何挑选彼此不相同的颜色

时间:2012-02-16 16:26:35

标签: javascript jquery

我正在使用此代码添加随机背景颜色

var hue = ['#2dafe9','#5feec3','#fdaf17','#999999','#2b2b2b','#454323','#ab34ef', '#e324e2','#874edf','#18edf4'];
    function getHue(){
        return hue[Math.floor(Math.random() * hue.length)];
    }

    function rainbow(){
        $("header[role='postHeader']").each(function(){
                $(this).css('background-color',getHue());
        });
    }
    rainbow();

我的问题是,如何按照数组的顺序选择颜色,而不必在结果中彼此相邻,因此颜色将遵循数组顺序,然后如果它到达最后一个数组循环返回第一个。

2 个答案:

答案 0 :(得分:2)

function getHue() {
    var t = hue.shift();
    hue.push(t);
    return t;
}

这将获取第一个色调,将其放回数组的末尾,然后返回它。

答案 1 :(得分:0)

保留一个局部变量并遍历数组。

(function(){
  var idx = 0;
  function getHue(){
    return hue[idx = idx++ % hue.length];
  }
})();