【问题标题】:JS: need a css color code based on a stringJS:需要一个基于字符串的css颜色代码
【发布时间】:2012-11-26 22:25:44
【问题描述】:

我需要一个函数来根据范围为min: #000000max: #FFFFFF 的字符串生成CSS 颜色。如果输入字符串中的长度或任何字符发生变化,该函数应返回不同的颜色(但它必须始终在相同的字符串输入上返回相同的颜色)。

例如:

f("Reddit") ==>#FF0000

f("Smith") ==>#FFC0CB   

f("Smixh")==>#F008FF

f("Smith") ==>#FFC0CB

f("foo")==>#FF00FF

f("Reddit") ==>#FF0000

等等。知道该怎么做吗?

【问题讨论】:

  • 这完全取决于你想要影响颜色的字符串的质量。前任。字符串的长度表示颜色较深。
  • 不同字符串的颜色重复可以吗?如果没有一些管理字符串本身的规则,就不可能保证唯一的字符串。例如,最小/最大字符是多少?

标签: javascript css string random colors


【解决方案1】:

我会hash the string 并使用十六进制校验和的前六个字符作为您的十六进制颜色代码:

function color(string) {
    return '#' + md5(string).slice(0, 6);
}

演示:http://jsfiddle.net/4PMnA/48/

【讨论】:

  • CRC32 可能是比 MD5 更好(更快)的选项。
  • jsfiddle 演示不再起作用(加载 md5 库时出现问题)。固定版本:jsfiddle.net/4PMnA/48
猜你喜欢
  • 2020-11-21
  • 2014-09-27
  • 2020-12-15
  • 2015-06-13
  • 2023-04-07
  • 1970-01-01
  • 1970-01-01
  • 2011-07-28
  • 2015-09-27
相关资源
最近更新 更多