我需要一个函数来基于范围为min: #000000
和max: #FFFFFF
的字符串生成CSS颜色。如果输入字符串的长度或任何字符改变,则该函数应返回不同的颜色(但在同一字符串输入上必须始终返回相同的颜色)。
例如:
f("Reddit") ==>#FF0000
f("Smith") ==>#FFC0CB
f("Smixh")==>#F008FF
f("Smith") ==>#FFC0CB
f("foo")==>#FF00FF
f("Reddit") ==>#FF0000
等等。任何想法如何做到这一点?
最佳答案
我要hash the string并将十六进制校验和的前六个字符用作您的十六进制颜色代码:
function color(string) {
return '#' + md5(string).slice(0, 6);
}
演示:http://jsfiddle.net/4PMnA/48/