使用javascript更改背景onclick的rgb值
我试图实现一个非常简单的JavaScript程序:每次单击按钮时,背景颜色的RGB值都是随机的 下面是Javascript:使用javascript更改背景onclick的rgb值,javascript,background-color,Javascript,Background Color,我试图实现一个非常简单的JavaScript程序:每次单击按钮时,背景颜色的RGB值都是随机的 下面是Javascript: function change() { var x = Math.floor(Math.random() * 256); // range is 0-255 var y = Math.floor(Math.random() * 256); var z = Math.floor(Math.random() * 256); var thergb
function change() {
var x = Math.floor(Math.random() * 256); // range is 0-255
var y = Math.floor(Math.random() * 256);
var z = Math.floor(Math.random() * 256);
var thergb = "'rgb(" + x + "," + y + "," + z + ")'";
console.log(thergb);
document.body.style.background=thergb;
}
我很确定问题在于如何将thergb
变量组合在一起,但是控制台中没有错误,所以我不太确定。我记录控制台只是为了确保它给我一个实际的随机rgb,它是
下面是完整的JSFIDLE:rgb()值的CSS语法不包含单引号 将“rgb(x,y,z)”更改为
rgb(x,y,z)
两件事:
var thergb = "rgb(" + x + "," + y + "," + z + ")";
您已将其包装在
'
中。。为什么?
如果你把它去掉,它就会工作
var thergb = "rgb(" + x + "," + y + "," + z + ")";
演示
(您还需要在head
标记中定义change
函数,而不是在onLoad
事件中定义功能。)工作小提琴(刚刚更正了您的代码):
CSS颜色作为rgb的语法是rgb(r,g,b)
(没有额外的撇号“”
”)=不是“rgb(r,g,b)
PS:如果这对您不起作用,您将在声明此javascript函数之前调用它。控制台中出现错误-“更改未定义”;)(在你的小提琴中)顺便说一句,你有一个额外的“”。我包装它是因为如果我只做
document.body.style.background=“rgb(4,5,23)”
例如,它只与引号一起工作。为什么我现在不需要它们?@user1925805您需要在它周围加上一种引号,表示它是一个字符串。。但是您同时使用了“
和”
引号。我明白了,我的错误是认为我需要复制变量中=
之外的所有内容,包括引号。
function change() {
var x = Math.floor(Math.random() * 256); // range is 0-255
var y = Math.floor(Math.random() * 256);
var z = Math.floor(Math.random() * 256);
var thergb = "rgb(" + x + "," + y + "," + z + ")";
console.log(thergb);
document.body.style.background=thergb;
}