2012-06-22 67 views
1

我想生成每個第5,15,15或第51個RGB值的調色板。使用JavaScript生成調色板

事情是這樣的:

<!DOCTYPE html> 
<html> 
<head> 
<meta charset="utf-8" /> 
<title>Color Palette</title> 
<style type="text/css"> 
div{margin:0;width:20px;height:20px;float:left} 
.clear{clear:both} 
</style> 
</head> 
<body> 
<script> 
var r = 0, 
    g = 0, 
    b = 0; 

function createBr() { 
    var b = document.createElement('br'); 
    b.style.clear = 'both'; 
    document.body.appendChild(b); 
} 

function createDiv(r,g,b) { 
var a = document.createElement('div'); 
a.style.background = 'rgb(' + r + ',' + g + ',' + b + ')'; 
document.body.appendChild(a); 
} 


function createColorPalette(value) { 
var v = 255/value; 
    for(i = 0; i < v; i++) { 
     r = r + value; 
     g = g + value; 
     b = b + value; 
     createDiv(r,g,b); 
    } 
createBr(); 
} 

// put in 5,15,17 or 51 as value below 
window.onload = createColorPalette(17); 
</script> 
</body> 
</html> 

我沒有足夠的智慧弄清楚如何生成所有色彩3375用小腳本。任何想法如何做到這一點?

+0

決不會「不夠聰明」的開始。我不確定我是否理解第5,15,15或17個RGB值是什麼意思。你能列舉一個例子嗎? –

+1

看看這個驚人的文章:http://krazydad.com/tutorials/makecolors.php –

+0

Thansk問K男人!我忘了有256種顏色不是255(我忘了計算「0」.5,15,17和51,其中255爲好的數字)。 – user1087110

回答

1

循環通過分數爲每種顏色像這樣:

function createColorPalette(value) { 
    var v = 255/value; 
    for(var rStep = 0, r = 0; rStep < v; rStep++) {  
     for(var gStep = 0, g = 0; gStep < v; gStep++) {  
      for(var bStep = 0, b = 0; bStep < v; bStep++) {             
       createDiv(r,g,b); 
       b += value; 
      } 
      g += value; 
     } 
     r += value; 
    } 
    createBr(); 
} 
+0

你忘了結束標籤。但不以任何方式工作。它只會產生大量的白色div標籤。 – user1087110

+0

對不起,我想我已經修好了。不知道這是你想要的樣子,但我認爲它打到了所有的顏色。 – matt3141

+0

這是對我的問題的答案任何方式......謝謝:) – user1087110