2014-02-06 72 views
0

我試圖實現一個非常簡單的JavaScript程序:每次點擊按鈕時,背景顏色的RGB值都是隨機的。使用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

http://jsfiddle.net/L92bY/8/ –

+0

控制檯有錯誤 - 「change is not defined」;)(在你的小提琴)btw你有一個額外的''「。 –

回答

2

您已經'包裹它。爲什麼?

如果你刪除它的工作原理..

var thergb = "rgb(" + x + "," + y + "," + z + ")"; 

演示在http://jsfiddle.net/gaby/L92bY/9/

你還需要在head標籤,而不是在onLoad事件定義change功能..

+0

我把它封裝起來,因爲如果我只是做'document.body.style.background =「rgb(4,5,23)」'例如,它只適用於引號。爲什麼我現在不需要他們? – user1925805

+0

@ user1925805你需要一種引號來表示它是一個字符串..但是你已經使用了''''和'''引號.. –

+0

我明白了,我的錯誤是想我需要複製變量中'='的所有內容,包括引號。 – user1925805

2

一個rgb()值CSS語法不包括單引號。

'rgb(x,y,z)'更改爲rgb(x,y,z)

0

兩件事情:

  1. 您需要選擇對於其中小提琴服務器把代碼中的「NOWRAP」選項之一。
  2. 你需要擺脫你的「rgb()」表達式中的單引號字符。

    var thergb = "rgb(" + x + "," + y + "," + z + ")"; 
    

個人而言,我會設置「的backgroundColor」,而不僅僅是「背景」,但它的工作原理(在Firefox至少)設置「背景」。

Fixed fiddle.

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函數之前,它是聲明。