使用javascript更改背景onclick的rgb值

时间:2014-02-06 22:27:57

标签: 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 = "'rgb(" + x + "," + y + "," + z + ")'"; 
    console.log(thergb);
    document.body.style.background=thergb;
}

我很确定问题在于如何将thergb变量组合在一起,但是控制台中没有错误,所以我不太确定。我记录控制台只是为了确保它给我一个实际的随机rgb,它是。

这是完整的JSFiddle:http://jsfiddle.net/L92bY/

4 个答案:

答案 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)

两件事:

  1. 您需要为小提琴服务器放置代码的位置选择一个“nowrap”选项。
  2. 你需要摆脱“rgb()”表达式周围的单引号字符。

        var thergb = "rgb(" + x + "," + y + "," + z + ")"; 
    
  3. 我个人设置“backgroundColor”而不仅仅是“background”,但它(至少在Firefox中)可以设置“background”。

    Fixed fiddle.

答案 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函数。