我正在寻找一种vanilla Javascript方法来选择十六进制或RGB颜色值来获得块状但连续的颜色。该方法应该能够指定多个分区/块,并以任何方式返回符合以下条件的颜色:
此示例的样式为随机大小的HTML div
。我甚至没有HTML代码。
任何帮助或指示都会很棒!
答案 0 :(得分:1)
这是一个快速而肮脏的解决方案,我相信它符合您指定的要求。具体来说 -
colorSpectrum = function(count) {
if (count <= 0) {
throw new Error('Count must be atleast 1');
}
var h = 0,
s = '75%',
l = '50%',
a = 1,
current = 0,
colors = [],
tohsla = function(h,s,l,a) {
return 'hsla(' + h + ',' + s + ',' + l + ',' + a + ')';
}
while (current < count) {
colors.push({
h:h,
s:s,
l:l,
a:a
});
h += 360 / count;
current++;
}
return {
colors:colors.map(function(el) {
return tohsla(el.h, el.s, el.l, el.a);
})
}
};
var colors = colorSpectrum(24);
colors.colors.forEach(function(color) {
var span = document.createElement('span'),
bodyWidth = parseInt(getComputedStyle(document.body).width, 10);
console.log(colors.colors.length);
span.classList.add('color');
span.style.backgroundColor = color;
span.style.width = bodyWidth / colors.colors.length + 'px';
document.body.appendChild(span);
});
&#13;
.color {
height:12px;
display:inline-block;
}
&#13;