Javascript 随机颜色字符串

Javascript 随机颜色字符串,javascript,Javascript,首先,这不是重复的: 我特别想要一个字符串改变为从绿色开始的随机颜色。我在用JS写作 function changeColor() { var change; for( var i=0; i < 11; i++ ) { change += script.charAt(Math.floor(Math.random() //Input ur suggestion here, I suspect it is the script variable and different

首先,这不是重复的:

我特别想要一个字符串改变为从绿色开始的随机颜色。我在用JS写作

function changeColor()
{
  var change;
  for( var i=0; i < 11; i++ )
  {
    change += script.charAt(Math.floor(Math.random() //Input ur suggestion here, I suspect it is the script variable and different colours
    script = document.getElementById('txt');
    script.style.color = "#33cc33";
  }
}
函数changeColor()
{
var变化;
对于(变量i=0;i<11;i++)
{
change+=script.charAt(Math.floor(Math.random()//在这里输入您的建议,我怀疑是脚本变量和不同的颜色
script=document.getElementById('txt');
script.style.color=“#33cc33”;
}
}

使用有效的十六进制颜色值创建数组:

var values = ['a', 'b', 'c', 'd', 'e', 'f', '0', '1', ... '9'];
从该数组中获取随机值:

var hex = values[Math.floor(Math.random() * values.length)];
…六次:

var hex = '#';
for (var i = 0; i < 6; i++ ) {
  hex += values[Math.floor(Math.random() * values.length)];
}
var hex='#';
对于(变量i=0;i<6;i++){
十六进制+=值[Math.floor(Math.random()*values.length)];
}
这可以做成一个函数:

function getRandomColor() {
    var values = ['a', 'b', 'c', 'd', 'e', 'f', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9'];
    var hex = '#';
    for (var i = 0; i < 6; i++) {
        hex += values[Math.floor(Math.random() * values.length)];
    }
    return hex;

}
函数getRandomColor(){ var值=['a','b','c','d','e','f','0','1','2','3','4','5','6','7','8','9']; var hex='#'; 对于(变量i=0;i<6;i++){ 十六进制+=值[Math.floor(Math.random()*values.length)]; } 返回十六进制; }

for循环立即完成,您需要一个超时时间来实际查看颜色变化,并需要一个随机颜色生成器来生成颜色,然后加入一个递归生命,您就可以:

var color = '#33cc33',
    elem  = document.getElementById('txt');

(function fn() {
    elem.style.color = color;
    setTimeout(function() {
        color = '#'+Math.floor(Math.random()*16777215).toString(16);
        fn();
    }, 500);
})();

好的,那还是不重复呢?只是好奇,为什么要乘以16777215?这是颜色数(减1),#FFFFFF转换为以十为底的16777215,我们从零开始,因此有16 777 216种颜色可用。另外,当您声明函数时,为什么在它前面有一个圆括号?有没有更简单的方法使用setTimeOut?圆括号使它在不调用它的情况下执行,这是一个IIFE(立即调用的函数表达式)。不确定是否有更简单的方法来使用超时,但您可以使用间隔,而不是。非常抱歉,问题太多了,但我十二岁,所以这有点难处理。当您调用setTimeOut方法时,为什么要使用:(function(){。您从未调用过该函数。再次抱歉,.toString(16)是用于什么