我正在尝试实现一个非常简单的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 = "'rgb(" + x + "," + y + "," + z + ")'";
console.log(thergb);
document.body.style.background=thergb;
}
我很确定问题在于如何将thergb
变量组合在一起,但是控制台中没有错误,所以我不太确定。我记录控制台只是为了确保它给我一个实际的随机rgb,它是。
这是完整的JSFiddle:http://jsfiddle.net/L92bY/
答案 0 :(得分:2)
rgb()
值的CSS语法不包含单引号。
将'rgb(x,y,z)'
更改为rgb(x,y,z)
。
答案 1 :(得分:2)
你已将其包裹在'
中..为什么?
如果删除它有效..
var thergb = "rgb(" + x + "," + y + "," + z + ")";
http://jsfiddle.net/gaby/L92bY/9/
演示(您还需要在change
代码中定义head
函数,而不是在onLoad
事件中定义.. )
答案 2 :(得分:0)
两件事:
你需要摆脱“rgb()”表达式周围的单引号字符。
var thergb = "rgb(" + x + "," + y + "," + z + ")";
我个人设置“backgroundColor”而不仅仅是“background”,但它(至少在Firefox中)可以设置“background”。
答案 3 :(得分:0)
工作小提琴(刚刚更正了您的代码):http://jsfiddle.net/L92bY/18/
CSS颜色的语法为rgb为rgb(r,g,b)
(没有额外的撇号“'
”)=不 'rgb(r,g,b)'
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;
}
PS:如果这对你不起作用,你就会在声明之前调用这个javascript函数。