我需要一个函数来基于范围为min: #000000max: #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/

10-01 09:09
查看更多