使用纯javascript的随机背景色生成器(无jquery)

使用纯javascript的随机背景色生成器(无jquery),javascript,Javascript,var颜色; 函数randomColor(){ color='#'+Math.random().toString(16).slice(2,8);//使用toString(16)将随机数转换为十六进制,然后切片使其成为6位数字。如fe2e4d或f4e22e }; var change=document.getElementById('color_change'); change.addEventListener('click',function(){ document.getElementById

var颜色;
函数randomColor(){
color='#'+Math.random().toString(16).slice(2,8);//使用toString(16)将随机数转换为十六进制,然后切片使其成为6位数字。如fe2e4d或f4e22e
};
var change=document.getElementById('color_change');
change.addEventListener('click',function(){
document.getElementById('random_background').style.backgroundColor=“color”;
});
div{
宽度:300px;
高度:300px;
}


颜色更改
正如@Teemu在注释中所述,您正在将字符串设置为
backgroundColor
属性,而不是设置
Color
变量的实际值

这里有一个例子可以帮助您,不需要使用
var颜色
使您的
randomColor()
函数直接返回值。然后在
backgroundColor
属性中调用该函数,如下所示:

函数randomColor(){
返回“#”+Math.random().toString(16).slice(2,8);
};
var change=document.getElementById('color_change');
change.addEventListener('click',function(){
document.getElementById('random_background')。style.backgroundColor=randomColor();
});
div{
宽度:300px;
高度:150像素;
}

颜色变化
“div”为空时没有高度 您应该将高度初始化为div

也要使用正确的颜色变量


祝你好运

这里有一个解决方案,对每个三元组使用随机数:

function rT(){
//random number between 0 and 255
//you could change the limits or pass a parameter to this function
return Math.floor(Math.random() * (255 - 0)) + 0;
}

var change = document.getElementById('color_change');
change.addEventListener('click', function() {

  document.getElementById('random_background').style.backgroundColor = "rgb("+rT()+" "+rT()+" "+rT()+")"; });
  //in this case we use this form rgb(0-255,0-255,0-255)
完整示例如下:


更改限制

如果要为属性设置字面上的“颜色”,请改用包含颜色值的变量。并在单击处理程序中添加对
randomColor
的函数调用。另外,不要使用外部范围变量,而是从
randomColor
函数返回颜色值,并将其分配给click handler函数中的局部变量。请删除“颜色”周围的引号。这听起来可能很傻,但我花了这么多时间试图把它做好。如果这有帮助,而且你愿意,你可以把这标记为公认的答案,以激励人们总是试图帮助你和其他人