我使用随机颜色作为背景,但由于文字是黑色的,当生成非常暗的颜色时,无法看到文字。如何在生成十六进制代码时排除这些深色?
我只能弄清楚如何得到这个:
Math.floor(Math.random()*16777215).toString(16)
但这并不排除深色。有人可以帮助我吗?
提前谢谢!
答案 0 :(得分:6)
值越高,颜色越浅,您可以尝试将随机值添加到高数字(在这种情况下为200
):
var randValue = Math.floor(Math.random()*56)+200; //200 to 255
注意:最大十六进制值为FF
,等于十进制255
然后,您可以选择使用.toString(16)
将这些RBG值转换为HEX,但据我所知,您可以使用RBG值设置颜色。
答案 1 :(得分:4)
我要做的是为每个(RGB)生成一个从00到FF的数字(即000000
到FFFFFF
)。我还要确保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演示