如何在javascript中生成颜色较浅的随机十六进制代码?

时间:2012-12-12 05:36:44

标签: javascript hex

我使用随机颜色作为背景,但由于文字是黑色的,当生成非常暗的颜色时,无法看到文字。如何在生成十六进制代码时排除这些深色?

我只能弄清楚如何得到这个:

Math.floor(Math.random()*16777215).toString(16)

但这并不排除深色。有人可以帮助我吗?

提前谢谢!

3 个答案:

答案 0 :(得分:6)

值越高,颜色越浅,您可以尝试将随机值添加到高数字(在这种情况下为200):

var randValue = Math.floor(Math.random()*56)+200; //200 to 255

注意:最大十六进制值为FF,等于十进制255

然后,您可以选择使用.toString(16)将这些RBG值转换为HEX,但据我所知,您可以使用RBG值设置颜色。

这是 jsFiddle Demo

答案 1 :(得分:4)

我要做的是为每个(RGB)生成一个从00到FF的数字(即000000FFFFFF)。我还要确保G值大约高于33。

答案 2 :(得分:3)

随机RGB,没有数字1& 2,所以你得到漂亮的颜色,用更少的代码完成:

var randomColor = (function lol(m, s, c) {
                    return s[m.floor(m.random() * s.length)] +
                        (c && lol(m, s, c - 1));
                })(Math, '3456789ABCDEF', 4);

JSFiddle演示