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(); ?>