新网创想网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
//将背景色的值定义成空字符串
成都创新互联主要从事成都网站建设、成都网站设计、网页设计、企业做网站、公司建网站等业务。立足成都服务扶风,10多年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:13518219792
var bgColor="";
//循环6次,生成一个随机的六位数
for (var i = 0 ; i 6 ; i++)
{
bgColor += "" + Math.round(Math.random() * 9);
}
//将随机生成的背景颜色值赋给页面的背景色。
document.getElementById("test")
.style.backgroundColor="#" + bgColor;
把下面的代码放在一个空网页的最后体验一下。
SCRIPT language=javascript type=text/javascript
var a=Math.round(Math.random()*0x1000000);
var c="00000".concat(a.toString(16));
document.bgColor="#"+c.substr(c.length-6,6);
/SCRIPT
/**
* 获取十六进制的颜色代码.例如 "#6E36B4" , For HTML ,
* @return String
*/
public static String getRandColorCode(){
String r,g,b;
Random random = new Random();
r = Integer.toHexString(random.nextInt(256)).toUpperCase();
g = Integer.toHexString(random.nextInt(256)).toUpperCase();
b = Integer.toHexString(random.nextInt(256)).toUpperCase();
r = r.length()==1 ? "0" + r : r ;
g = g.length()==1 ? "0" + g : g ;
b = b.length()==1 ? "0" + b : b ;
return r+g+b;
}
说下思路,不一定对,随机颜色的化,每次随机三个 0到255的数字,组合成一个RGB,应该就可以了,现在的问题是,区分颜色之间的鲜明程度。定义一个阈值A
A= (r1-r2)^2+(g1-g2)^2+(b1-b2)^2 根据这样来计算,每生成一种颜色,就把这种颜色跟其余颜色的阈值计算出来,如果全都满足,那么就可以,如果有一个不满足,那就重新随机生成一次。
A具体的值是多少,这个你可以摸索下,设置太大的化,随机生成的颜色的数量,可能不够,太小的化,颜色的鲜明程度不满足。
实际上,上面A的公式来计算 颜色的鲜明程度 是错误的,不能这样算。
random.nextInt(256)随机产生一个256以内的整数 ,
Integer.toHexString()将整数转换成16进制表示,返回的是一个String类型
toUpperCase()是将一个String字符串转换成大写表示
例如 26——"1a"——"1A"
r =( ( r.length() == 1 )?( "0" + r) : r );这句的意思是如果r的长度为1,则前面补个"0",长度不是1,则返回r(三元表达式),如 r="2",就变成r="02"