随机生成格式为 #FFFFFF 的颜色值
随机生成 6 位 0-15 之间的数字, 再用 toString(16) 将数字转成 16 进制.
- // 随机生成 6 位 16 进制数的颜色值 #FFFFFF
- function randomColor() {
- var color = "#";
- //for 循环中, 如果后面仅有一条语句,{} 可省略不写
- // 随机生成 6 位 0-15 之间的数字, 再用 toString(16) 将数字转成 16 进制
- for (var i = 0; i < 6; i++) color+=parseInt(Math.random() * 16).toString(16);
- return color;
- }
- 12345678
随机生成带透明度的 16 进制的颜色值
跟第一种方法类似, 随机生成 8 位 0-15 之间的数字, 再用 toString(16) 将数字转成 16 进制.
- //#ff0000ff 后两位是透明度, 数值越大, 颜色越深
- function randomColor() {
- var color = "#";
- //for 循环中, 如果后面仅有一条语句,{} 可省略不写
- // 同上面方法
- for (var i = 0; i < 8; i++) color+=parseInt(Math.random() * 16).toString(16);
- return color;
- }
- 12345678
获取生成 RGB 格式的随机颜色值
随机生成 3 位 0-255 之间的数字, 字符串进行拼接.
- // 获取随机颜色 rgb(255,255,255)
- function randomColor(){
- var color="rgb(";
- for(var i=0;i<3;i++) color+=parseInt(Math.random()*256)+",";
- // 去除最后一个逗号
- // color=color.slice(0,-1)
- color=color.substring(0,color.length-1)+")";
- return color;
- }
- 123456789
获取生成 RGBA 格式的随机颜色值
随机生成 3 位 0-255 之间的数字, 如果有传入透明度的值, 将按照用户传入的值来渲染. 如果没有传入透明度的值, 则随机生成透明度.
需要注意的是 Math.random() 只能生成 0-1 之间的小数, 不包含 0 跟 1,Math.random()*10, 是 1-10 之间的整数, 除以 10 再四舍五入, 就有可能得到 0 或者 1.
- function randomColor(alpha){
- // 判断有没有传入透明值, 没有传入的话, 随机生成 0-1 之间的小数
- //Math.random() 只能生成 0-1 之间的小数, 不包含 0 跟 1,Math.random()*10, 是 1-10 之间的整数, 除以 10 再四舍五入, 就有可能得到 0 或者 1.
- alpha = alpha==undefined? (Math.random()*10/10).toFixed(1) : alpha;
- // 将参数转化成数值
- alpha=Number(alpha);
- // 如果传入的参数是非数值, 则让透明度为 1
- if(isNaN(alpha)) alpha=1;
- // 颜色拼接
- var color = "rgba(";
- for(var i=0;i<3;i++){
- color+=parseInt(Math.random()*256)+",";
- }
- color+= alpha+")";
- return color;
- }
来源: http://www.bubuko.com/infodetail-3506819.html