完全な16進値を形成するランダムな文字が追加される部分的な16進値の配列があります。
次に、これらはdivレイヤーにランダムに適用され、さまざまな色で効果的にシェーディングされます。しかし、私が現在得ているのは、1つの色のバリエーションではなく、「マティス」効果です。
getRandomColor関数を強制的に実行すると、私が求めている効果が表示されvar color = setHex();
ますvar color = '#CC0';
。
1つの16進値のみを渡す必要があるのに、なぜ「Matisse」効果が発生するのか知りたいです。これを止めるにはどうすればよいですか?
ここの例を参照してください:http: //jsfiddle.net/fyQhg/
// Set Hex
function setHex() {
var hexArray = ['#CC0','#FF9','#339'];
var randomHex = hexArray[Math.floor(Math.random() * hexArray.length)];
document.getElementById('inner').innerHTML = randomHex;
return randomHex;
}
// random color
function getRandomColor() {
var letters = '0123456789ABCDEF'.split('');
var color = setHex();
for (var i = 0; i < 3; i++ ) {
color += letters[Math.round(Math.random() * 7)];
}
return color;
}
//ditribute random colors
function buttonClick() {
var i,j, colorblock = document.getElementsByClassName('shade');
for (i=0, j=colorblock.length; i<j; i++) {
colorblock[i].style.background = getRandomColor();
}
}
window.onload = buttonClick();