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

如何在javascript中生成颜色较浅的随机十六进制代码?,javascript,hex,Javascript,Hex,我使用随机颜色作为背景,但是由于文本是黑色的,当生成真正的深色时,文本就看不见了。生成十六进制代码时,如何排除这些深色 我只能想办法得到这个: Math.floor(Math.random()*16777215).toString(16) 但这并不排除深色。谁能帮帮我吗 提前谢谢你 我要做的是为每个(RGB)生成一个从00到FF的数字(即000000到FFFFFF)。我还要确保G值大约高于33。值越高,颜色越浅,您可以尝试将一个随机值添加到一个较大的数字中(200): 注意:最大十六进制值为FF

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

我只能想办法得到这个:

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

但这并不排除深色。谁能帮帮我吗


提前谢谢你

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

值越高,颜色越浅,您可以尝试将一个随机值添加到一个较大的数字中(
200
):

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

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


这是一个不带数字1和2的随机RGB,因此您可以用更少的代码获得漂亮的颜色:

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

演示

使用alpha可能是一种方法。这可能会对您有所帮助—这也是一种方法,它几乎是您想要的(例如,删除0到8)。您可以使用按位或确保始终设置一些高位。类似于
c=(Math.floor(Math.random()*0xffffff)| 0x0f0f0f)谢谢!我只是用了这段代码:
(Math.floor((Math.random()*222)+33)toString(16)+(Math.floor((Math.random()*222)+33)toString(16))+(Math.floor((Math.random()*222)+33)。toString(16))
真的深色不再生成。。。谢谢大家!@我想你的代码从十进制33到254。十进制33是21个十六进制。(这意味着你可以得到非常暗的
#21212121
,它比SO中注释的文本颜色暗)33十六进制是51十进制。所以,如果您使用的是十进制值,只需将其改为51。@KingKongFrog 33十六进制太低,即使99十六进制(或153十进制)非常暗,只要看一下,接受的答案就会产生暗颜色。这个很好用。谢谢你,不错,不过我觉得有些颜色还是太暗了。我只想用
ABCDEF
试试。
var randomColor = (function lol(m, s, c) {
                    return s[m.floor(m.random() * s.length)] +
                        (c && lol(m, s, c - 1));
                })(Math, '3456789ABCDEF', 4);