随机十六进制发生器(仅灰色)

Rom*_*aun 4 javascript

我在stackoverflow上找到了这个颜色生成器:

Math.random()*0xFFFFFF<<0

它工作正常.唯一的问题是我想生成随机颜色,但只有不同的灰色阴影.

我不知道如何才能实现这样的目标.

Bri*_*n S 12

var value = Math.random() * 0xFF | 0;
var grayscale = (value << 16) | (value << 8) | value;
var color = '#' + grayscale.toString(16);
Run Code Online (Sandbox Code Playgroud)

color将是一个随机的灰度十六进制颜色值,适用于例如element.style属性.

注意:有几种方法可以将随机浮点数强制转换为整数.x | 0据我所知,按位OR()通常是最快的; floor函数(Math.floor(x))的速度大致相同,但只能截断正数(你必须使用Math.ceil(x)负数).对于需要超过32位表示的数字,按位运算符将无法按预期工作,但Math.random() * 0xFF始终在该范围内[0,255).