function randColor(){
var r=Math.floor(Math.random()*256);
var g=Math.floor(Math.random()*256);
var b=Math.floor(Math.random()*256);
light=r*0.299 + g*0.578 + b*0.114;
if(light>192 || light<60)return randColor();
return "#"+("0"+r.toString(16)).slice(-2)+("0"+g.toString(16)).slice(-2)+("0"+b.toString(16)).slice(-2);
} 这是个递归调用的函数,如果颜色太深或者太浅,都排除掉。灰度大于192的太浅,小于60的太深。 $('.wrap').each(function(){
color=randColor();
$(this).find(".top,.icon-tel").css("background-color",color);
$(this).find(".center,.tel-phone").css("color",color);
});
引用jquery后,可以这样批量的设置元素的背景色和文字颜色。
相应的php版本为: <?php
function randColor($sH=60,$bH=192){
$r=rand(0,255);
$g=rand(0,255);
$b=rand(0,255);
$light=$r*0.299 + $g*0.578 + $b*0.114;
if($light>$bH || $light<$sH)return randColor();
return substr('0'.dechex($r),-2). substr('0'.dechex($g),-2). substr('0'.dechex($b),-2);
}
echo randColor();
?>
|