2011-02-23 13 views

Respuesta

106
'#'+(Math.random()*0xFFFFFF<<0).toString(16); 
+0

¿Quién no prefiere las formas taquigráficas? :) – pimvdb

+8

tenga en cuenta que este método genera códigos de color incorrectos, también: '> '#' + (. 001 * 0xffffff << 0) .toString (16) ---> '# 4189'' – Scheintod

+3

No prefiero la taquigrafía formas. Una forma aburrida a mano larga sería mucho más clara sobre lo que está pasando. Si veo este código por sí mismo, me llevaría mucho tiempo conectarlo con su propósito expreso. – JonathanHayward

47

Hay una variedad de métodos en la entrada del blog Random hex color code generator in JavaScript. Es necesario para rellenar con ceros cuando el valor aleatorio es menor que 0×100000, así que aquí está la versión correcta:

var randomColor = "#000000".replace(/0/g,function(){return (~~(Math.random()*16)).toString(16);}); 

que sustituye a cada uno de los seis 0 s con un dígito hexadecimal al azar, por lo que es seguro que terminará con una completa valor de color válido de seis dígitos.

+1

Este es el que generó códigos HTML válidos todo el tiempo – Peshal

+0

¿Puedo saber por qué usa el número 16777215 ... – bvmCoder

+2

@dbgular 16777215 es el equivalente decimal de FFFFFF en hexadecimal, que es el valor máximo de color RGB. –

Cuestiones relacionadas