4

背景にランダムな色を使用していますが、テキストが黒なので、本当に暗い色が生成されると、テキストが見えなくなります。16進コードを生成するときにこれらの暗い色を除外するにはどうすればよいですか?

私はこれを取得する方法を理解することしかできませんでした:

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、10進数に等しい値です。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

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);

JSFiddleデモ

于 2013-10-31T17:36:39.310 に答える