4

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

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

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

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

先感谢您!

4

3 回答 3

9

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

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

注意:最大 HEX 值FF等于十进制255

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

这是一个jsFiddle 演示

于 2012-12-12T05:54:32.963 回答
4

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

于 2012-12-12T05:41:26.663 回答
3

random RGB without the numbers 1 & 2, so you get nice colors, done with less code:

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 Demo

于 2013-10-31T17:36:39.310 回答