使用 JavaScript 创建基于字符串的十六进制颜色 [英] Create a hexadecimal colour based on a string with JavaScript
本文介绍了使用 JavaScript 创建基于字符串的十六进制颜色的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想创建一个函数来接受任何旧的字符串(通常是一个单词),并从中以某种方式在#000000
和<之间生成一个十六进制值code>#FFFFFF,因此我可以将其用作 HTML 元素的颜色.
I want to create a function that will accept any old string (will usually be a single word) and from that somehow generate a hexadecimal value between #000000
and #FFFFFF
, so I can use it as a colour for a HTML element.
如果不那么复杂,甚至可能是一个速记十六进制值(例如:#FFF
).事实上,网络安全"调色板中的颜色是理想的.
Maybe even a shorthand hex value (e.g: #FFF
) if that's less complicated. In fact, a colour from a 'web-safe' palette would be ideal.
推荐答案
只是从 计算任意字符串的十六进制颜色代码到Javascript:
Just porting over the Java from Compute hex color code for an arbitrary string to Javascript:
function hashCode(str) { // java String#hashCode
var hash = 0;
for (var i = 0; i < str.length; i++) {
hash = str.charCodeAt(i) + ((hash << 5) - hash);
}
return hash;
}
function intToRGB(i){
var c = (i & 0x00FFFFFF)
.toString(16)
.toUpperCase();
return "00000".substring(0, 6 - c.length) + c;
}
要转换,您可以:
intToRGB(hashCode(your_string))
这篇关于使用 JavaScript 创建基于字符串的十六进制颜色的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文