数组中的随机颜色应用于页面上的元素

时间:2013-03-07 10:37:14

标签: php javascript jquery colors

我有一个元素列表,它们都需要从颜色数组中应用随机背景颜色。

我的HTML结构很简单:

<ul class="moreorless-list">
  <li><span>Word</span></li>
  <li><span>Word</span></li>
  <li><span>Word</span></li>
  <li><span>Word</span></li>
  <li><span>Word</span></li>
  <li><span>Word</span></li>
</ul>

例如,颜色数组可以是:#ffffff,#111111,#222222,#333333等。

我需要从数组中获取颜色并随机将它们应用到列表中;这当然意味着一些颜色重复两次就好了。

我是如何实现这一目标的? PHP或JS是首选。

6 个答案:

答案 0 :(得分:2)

$('li').each(function () {
    $(this).css('background-color', random());
});

function random() {
    colors = ['red', 'white', 'blue', 'green']
    return colors[Math.floor(Math.random() * colors.length)];
}

答案 1 :(得分:0)

试试这个:

function get_random_color() {
    function c() {
        return rand_num(256).toString(16);
      }
      return "#"+c()+c()+c();
      }

答案 2 :(得分:0)

如果您有颜色设置,请使用:

$colors = array("#FFFFFF", "#000000", "#333333");
$rand_keys = array_rand($colors);

答案 3 :(得分:0)

试试这个:

function getRandomColor(colorArray)
{
   return colorArray[Math.floor(Math.random()*colorArray.length)];
}

答案 4 :(得分:0)

我倾向于建议:

var options = ['#ffffff', '#111111', '#222222', '#333333'];

function randomColour(el, colours){
    return colours[Math.floor(Math.random()*colours.length)];
}

var spans = document.getElementsByTagName('span');
for (var i = 0, len = spans.length; i<len; i++){
    spans[i].style.backgroundColor = randomColour(this,options);
}

JS Fiddle demo

答案 5 :(得分:0)

基本上你需要从数组中获取一个随机值。在PHP中,您可以使用array_randhttp://php.net/manual/en/function.array-rand.php)来实现此目的。一个方法可能看起来像这样:

<?php
    function randomColor() {
        $colorArray = array('#ffffff', '#111111', '#222222', '#333333', ...);
        return $colorArray[array_rand($colorArray)]; // array_rand() only returns the key
    }
?>

<ul class="moreorless-list">
    <li style="background-color:<?php echo randomColor(); ?>"><span>Word</span></li>
    <li style="background-color:<?php echo randomColor(); ?>"><span>Word</span></li>
    <li style="background-color:<?php echo randomColor(); ?>"><span>Word</span></li>
    <li style="background-color:<?php echo randomColor(); ?>"><span>Word</span></li>
    <!-- ... -->
</ul>