Cheer 发表于 2007-4-28 11:12:39

综合类这个东东能帮你生成彩色文字脚本的代码

把下列代码加到网页的<body></body>标签之间 从google下载我的照片管理软件
要完成此效果需要两个步骤

第一步:把如下代码加入到<head>区域中

<script language=javascript1.2>

<!--

var bname=navigator.appname;

var bver=parseint(navigator.appversion);

var ns4=(bname=="netscape" && bver >= 4);

var ie4=(bname=="microsoft internet explorer" && bver >= 4);

var fstr_r;

var fstr_g;

var fstr_b;

var sitem="s";



function display(id, str){

if(ns4 || ie4){

    if(ns4){

      with (document.document){

      open(); write(str); close();

      }

    }else document.all.innerhtml=str;

}else{

    document.fsample2.startcolor.value=document.gradform.start.value;

    document.fsample2.endcolor.value=document.gradform.end.value;

}

}



function makearray(){

for(i = 0; i<makearray.arguments.length; i++)

    this = makearray.arguments;

}



var convert = new makearray('0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z');



function returnbase(number,base) {

eval("var output=parseint(number)");

if(isnum(number,base)){

    if(number < base) output = convert;

    else{

      var msd = '' + math.floor(number / base);

      var lsd = number - msd*base;

      if(msd > base) output = returnbase(msd,base) + convert;

      else output = convert + convert;

    }

}else{

    output=0;

}

return output;

}



function isnum(no, base){

var cmp="0123456789";

var chkstr=no;

var chkchar;

var rc=true;

var nlen;



if(base == 16){

    cmp+="abcdefabcdef";

}else if(base == 10){

    eval("chkstr=''+parseint(chkstr)");

}

nlen=chkstr.length;



for(var i=0; i<nlen; i++){

   chkchar=chkstr.substring(i,i+1)

   if(i==0 && chkchar == "#" && base == 16){

   }else if(cmp.indexof(chkchar)<0){

       rc=false;

   }

   if(rc == false) i=nlen;

}

return rc;

}



function chknum(obj,base){

var form=document.gradform;

var rc=true;



if(base==10){

    eval("rc=form."+obj+".value <= 255");

}



if(rc){

    eval("rc=isnum(form."+obj+".value,"+base+")");

    if(!rc){

      alert("输入的数值不正确!");

      eval("form."+obj+".focus()");

    }

}else{

    alert("输入的数值大于255!");

    eval("form."+obj+".focus()");

}

return rc;

}



function twobyte(no){

var str=no;



if(isnum(no,16)){

    str="0"+str;

    str=str.substring((str.length-3)+1);

}else{

    str="00";

}

return str;

}



function cstrlen(cstr){

var slen=cstr.length;

var j=0;

for(var i=0;i<slen;i++){

   str=cstr.charat(i);

   if(ns4 && str.charcodeat(0)<1){

       i++;

   }

   j++;

}

return j;

}



function gradienttext(form, color1, color2, color3, gstr, gtype){

var redstep, greenstep, bluestep;

var str_r, str_g, str_b, str;



var gstep=cstrlen(gstr);



var b1 = color1 % 0x100; if(isnan(b1)) b1=0;

var g1 = parseint(color1 / 0x100) % 0x100; if(isnan(g1)) g1=0;

var r1 = parseint(color1 / 0x10000) % 0x100; if(isnan(r1)) r1=0;



var b2 = color2 % 0x100; if(isnan(b2)) b2=0;

var g2 = parseint(color2 / 0x100) % 0x100; if(isnan(g2)) g2=0;

var r2 = parseint(color2 / 0x10000) % 0x100; if(isnan(r2)) r2=0;



var cstepadd = parseint(256 / gstep);



if(g1 > g2){

    greenstep = 0;

}else if(g2 > g1){

    greenstep = 1;

}else{

    greenstep = 2;

}



if(r1 > r2){

    redstep = 0;

}else if(r2 > r1){

    redstep = 1;

}else{

    redstep = 2;

}



if(b1 > b2){

    bluestep = 0;

}else if(b2 > b1){

    bluestep = 1;

}else{

    bluestep = 2;

}



var gradstr="";

if(gtype == 's'){

    gradstr+='<table width="100%" border=0 cellspacing=0 cellpadding=0><tr><td align=center bgcolor="'+color3+'"><br>';

}



for(var i=0; i<gstr.length; i++){

   str_r=twobyte(returnbase(r1,16));

   str_g=twobyte(returnbase(g1,16));

   str_b=twobyte(returnbase(b1,16));



   str=gstr.charat(i);

   if(ns4 && str.charcodeat(0)<1){

       str=str+gstr.charat(i+1);

       i++;

   }



   gradstr+='<font color="#'+str_r+str_g+str_b+'">'+str+'</font>';



   if(redstep==1){

       r1 = r1 + cstepadd;

       if(r1 > r2) r1 = r2;

   }else if(redstep==0){

       r1 = r1 - cstepadd;

       if(r1 < r2) r1 = r2;

   }

      

   if(greenstep==1){

       g1 = g1 + cstepadd;

       if(g1 > g2) g1 = g2;

   }else if(greenstep==0){

       g1 = g1 - cstepadd;

       if(g1 < g2) g1 = g2;

   }



   if(bluestep==1){

       b1 = b1 + cstepadd;

       if(b1 > b2) b1 = b2;

   }else if(bluestep==0){

       b1 = b1 - cstepadd;

       if(b1 < b2) b1 = b2;

   }

}



if(gtype == 's'){

    gradstr+='<br>&nbsp;</td></tr></table>';

}



return gradstr;

}



function gentag(form){

var ss,ee,bb;



if(!isnum(form.start.value,16)){

    alert("请检查起始颜色数值");

}else if(!isnum(form.end.value,16)){

    alert("请检查结束颜色数值");

}else if(!isnum(form.bg.value,16)){

    alert("请检查背景颜色数值");

}else{

    eval("ss=0x"+form.start.value.substring(1)+";");

    eval("ee=0x"+form.end.value.substring(1)+";");

    eval("bb=form.bg.value");

    form.code.value=gradienttext(form,ss,ee,bb,form.showstr.value,"c");

}

}



function newrgb(type, field2){

var form=document.gradform;

var chkok=true;

var vno;



if(field2==""){

    if(sitem=="s"){

      chkok=chknum('start',16);

    }else if(sitem=="e"){

      chkok=chknum('end',16);

    }else if(sitem=="b"){

      chkok=chknum('bg',16);

    }

}



if(chkok){

    if(type==0){

      if(field2 != "") eval("chkok=isnum(form.rgb_"+field2+".value,10)");

      if(chkok){

      if(field2 != "") eval("chkok=chknum('rgb_"+field2+"',10)");

      if(chkok){

          fstr_r=twobyte(returnbase(form.rgb_r.value,16));

          fstr_g=twobyte(returnbase(form.rgb_g.value,16));

          fstr_b=twobyte(returnbase(form.rgb_b.value,16));

          if(sitem=="s"){

            form.start.value="#"+fstr_r+fstr_g+fstr_b;

          }else if(sitem=="e"){

            form.end.value="#"+fstr_r+fstr_g+fstr_b;

          }else if(sitem=="b"){

            form.bg.value="#"+fstr_r+fstr_g+fstr_b;

          }

      }

      }else{

      alert("输入的颜色数值不正确。");

      eval("form.rgb_"+field2+"s.focus()");

      }

    }else{

      if(sitem=="s"){

      fstr_r=form.start.value.substring(1,3);

      fstr_g=form.start.value.substring(3,5);

      fstr_b=form.start.value.substring(5,7);

      }else if(sitem=="e"){

      fstr_r=form.end.value.substring(1,3);

      fstr_g=form.end.value.substring(3,5);

      fstr_b=form.end.value.substring(5,7);

      }else if(sitem=="b"){

      fstr_r=form.bg.value.substring(1,3);

      fstr_g=form.bg.value.substring(3,5);

      fstr_b=form.bg.value.substring(5,7);

      }

      form.rgb_r.value=parseint(fstr_r,16);

      form.rgb_g.value=parseint(fstr_g,16);

      form.rgb_b.value=parseint(fstr_b,16);

    }

    if(chkok) addtext();

}

}



function addtext(){

var form=document.gradform;

var ss,ee,bb;



eval("ss=0x"+form.start.value.substring(1)+";");

eval("ee=0x"+form.end.value.substring(1)+";");

eval("bb=form.bg.value");



str=gradienttext(form,ss,ee,bb,form.showstr.value,"s");

display("fsample", str);

}



function setrgb(id,no){

var form=document.gradform;

var nid="rgb_"+id;



if(id){

    var tmp=eval("parseint(form."+nid+".value)+parseint("+no+")");

    if(tmp<0) tmp=255;

    else if(tmp>255) tmp=0;



    eval("form."+nid+".value="+tmp);

}



fstr_r=twobyte(returnbase(form.rgb_r.value,16));

fstr_g=twobyte(returnbase(form.rgb_g.value,16));

fstr_b=twobyte(returnbase(form.rgb_b.value,16));



if(sitem=="s"){

    form.start.value="#"+fstr_r+fstr_g+fstr_b;

}else if(sitem=="e"){

    form.end.value="#"+fstr_r+fstr_g+fstr_b;

}else if(sitem=="b"){

    form.bg.value="#"+fstr_r+fstr_g+fstr_b;

}



addtext();

}



function setcolor(clr){

if(sitem=="s"){

    document.gradform.start.value="#"+clr;

}else if(sitem=="e"){

    document.gradform.end.value="#"+clr;

}else if(sitem=="b"){

    document.gradform.bg.value="#"+clr;

}



resetvalue();

addtext();

}



function set(swtch){

if(swtch == 1) sitem="s";

else if (swtch == 2) sitem="e";

else if (swtch == 0) sitem="b";

resetvalue();

}



function resetvalue(){

var form=document.gradform;

var str_r, str_g, str_b;



if(sitem=="s"){

    str_r=form.start.value.substring(1,3);

    str_g=form.start.value.substring(3,5);

    str_b=form.start.value.substring(5,7);

}else if(sitem=="e"){

    str_r=form.end.value.substring(1,3);

    str_g=form.end.value.substring(3,5);

    str_b=form.end.value.substring(5,7);

}else if(sitem=="b"){

    str_r=form.bg.value.substring(1,3);

    str_g=form.bg.value.substring(3,5);

    str_b=form.bg.value.substring(5,7);

}

form.rgb_r.value=parseint(str_r,16);

form.rgb_g.value=parseint(str_g,16);

form.rgb_b.value=parseint(str_b,16);

}



function nomsg(){

self.status="";

}



function myreset(){

addtext();

}



//-->

</script>


第二步:把如下代码加入到<body>区域中

<tr><td align=center width=450 height=400> <form name=gradform>
      <table border=1 align="left">
      <tr><td> <input type=radio name=setitem value="bg" onclick="set(0)">背景色<input type=text name="bg" size=6 value="#ffffff" onchange="newrgb(1,'')"><input type=radio name=setitem value="start" onclick="set(1)" checked>起始色<input type=text name="start" size=6 value="#ff0000" onchange="newrgb(1,'')"> <input type=radio name=setitem value="end" onclick="set(2)">结束色<input type=text name="end" size=6 value="#0000ff" onchange="newrgb(1,'')"></td></tr><tr><td><font color="#ff0000">红</font> <input type="button" value="+" onclick="setrgb('r',1)"><input type=text name=rgb_r size=3 value=0 onchange="newrgb(0,'r')"><input type="button" value="-" onclick="setrgb('r',-1)"><font color="#009900">绿</font> <input type="button" value="+" onclick="setrgb('g',1)"><input type=text name=rgb_g size=3 value=0 onchange="newrgb(0,'g')"><input type="button" value="-" onclick="setrgb('g',-1)"><font color="#0000ff">蓝</font> <input type="button" value="+" onclick="setrgb('b',1)"><input type=text name=rgb_b size=3 value=255 onchange="newrgb(0,'b')"><input type="button" value="-" onclick="setrgb('b',-1)"></td></tr><tr><td><table border=1 cellspacing=-1 cellpadding=1><tr><td bgcolor="#ffffff"><a href="#" onclick="setcolor('ffffff');return false" onmouseover="nomsg();return true"></a></td><td bgcolor="#ffff00"><a href="#" onclick="setcolor('ffff00');return false" onmouseover="nomsg();return true"></a></td><td bgcolor="#ffe000"><a href="#" onclick="setcolor('ffe000');return false" onmouseover="nomsg();return true"></a></td><td bgcolor="#ffc000"><a href="#" onclick="setcolor('ffc000');return false" onmouseover="nomsg();return true"></a></td><td bgcolor="#ffa000"><a href="#" onclick="setcolor('ffa000');return false" onmouseover="nomsg();return true"></a></td><td bgcolor="#ff8000"><a href="#" onclick="setcolor('ff8000');return false" onmouseover="nomsg();return true"></a></td><td bgcolor="#ff6000"><a href="#" onclick="setcolor('ff6000');return false" onmouseover="nomsg();return true"></a></td><td bgcolor="#ff4000"><a href="#" onclick="setcolor('ff4000');return false" onmouseover="nomsg();return true"></a></td><td bgcolor="#ff0000"><a href="#" onclick="setcolor('ff0000');return false" onmouseover="nomsg();return true"></a></td><td bgcolor="#e00000"><a href="#" onclick="setcolor('e00000');return false" onmouseover="nomsg();return true"></a></td><td bgcolor="#c00000"><a href="#" onclick="setcolor('c00000');return false" onmouseover="nomsg();return true"></a></td><td bgcolor="#ffc0ff"><a href="#" onclick="setcolor('ffc0ff');return false" onmouseover="nomsg();return true"></a></td><td bgcolor="#ffa0ff"><a href="#" onclick="setcolor('ffa0ff');return false" onmouseover="nomsg();return true"></a></td><td bgcolor="#ff80ff"><a href="#" onclick="setcolor('ff80ff');return false" onmouseover="nomsg();return true"></a></td><td bgcolor="#ff60ff"><a href="#" onclick="setcolor('ff60ff');return false" onmouseover="nomsg();return true"></a></td><td bgcolor="#ff00ff"><a href="#" onclick="setcolor('ff00ff');return false" onmouseover="nomsg();return true"></a></td><td bgcolor="#e000ff"><a href="#" onclick="setcolor('e000ff');return false" onmouseover="nomsg();return true"></a></td><td bgcolor="#c000ff"><a href="#" onclick="setcolor('c000ff');return false" onmouseover="nomsg();return true"></a></td><td bgcolor="#a000ff"><a href="#" onclick="setcolor('a000ff');return false" onmouseover="nomsg();return true"></a></td><td bgcolor="#8000ff"><a href="#" onclick="setcolor('8000ff');return false" onmouseover="nomsg();return true"></a></td><td bgcolor="#00ffff"><a href="#" onclick="setcolor('00ffff');return false" onmouseover="nomsg();return true"></a></td><td bgcolor="#00e0ff"><a href="#" onclick="setcolor('00e0ff');return false" onmouseover="nomsg();return true"></a></td></tr><tr><td bgcolor="#00c0ff"><a href="#" onclick="setcolor('00c0ff');return false" onmouseover="nomsg();return true"></a></td><td bgcolor="#00a0ff"><a href="#" onclick="setcolor('00a0ff');return false" onmouseover="nomsg();return true"></a></td><td bgcolor="#0080ff"><a href="#" onclick="setcolor('0080ff');return false" onmouseover="nomsg();return true"></a></td><td bgcolor="#0060ff"><a href="#" onclick="setcolor('0060ff');return false" onmouseover="nomsg();return true"></a></td><td bgcolor="#0000ff"><a href="#" onclick="setcolor('0000ff');return false" onmouseover="nomsg();return true"></a></td><td bgcolor="#0000e0"><a href="#" onclick="setcolor('0000e0');return false" onmouseover="nomsg();return true"></a></td><td bgcolor="#0000c0"><a href="#" onclick="setcolor('0000c0');return false" onmouseover="nomsg();return true"></a></td><td bgcolor="#d0ff00"><a href="#" onclick="setcolor('d0ff00');return false" onmouseover="nomsg();return true"></a></td><td bgcolor="#a0ff00"><a href="#" onclick="setcolor('a0ff00');return false" onmouseover="nomsg();return true"></a></td><td bgcolor="#80ff00"><a href="#" onclick="setcolor('80ff00');return false" onmouseover="nomsg();return true"></a></td><td bgcolor="#00ff00"><a href="#" onclick="setcolor('00ff00');return false" onmouseover="nomsg();return true"></a></td><td bgcolor="#00e000"><a href="#" onclick="setcolor('00e000');return false" onmouseover="nomsg();return true"></a></td><td bgcolor="#00c000"><a href="#" onclick="setcolor('00c000');return false" onmouseover="nomsg();return true"></a></td><td bgcolor="#00a000"><a href="#" onclick="setcolor('00a000');return false" onmouseover="nomsg();return true"></a></td><td bgcolor="#008000"><a href="#" onclick="setcolor('008000');return false" onmouseover="nomsg();return true"></a></td><td bgcolor="#00a0a0"><a href="#" onclick="setcolor('00a0a0');return false" onmouseover="nomsg();return true"></a></td><td bgcolor="#a0a000"><a href="#" onclick="setcolor('a0a000');return false" onmouseover="nomsg();return true"></a></td><td bgcolor="#a0a0a0"><a href="#" onclick="setcolor('a0a0a0');return false" onmouseover="nomsg();return true"></a></td><td bgcolor="#a0a0e0"><a href="#" onclick="setcolor('a0a0e0');return false" onmouseover="nomsg();return true"></a></td><td bgcolor="#e0a0a0"><a href="#" onclick="setcolor('e0a0a0');return false" onmouseover="nomsg();return true"></a></td><td bgcolor="#a0e0a0"><a href="#" onclick="setcolor('a0e0a0');return false" onmouseover="nomsg();return true"></a></td><td bgcolor="#000000"><a href="#" onclick="setcolor('000000');return false" onmouseover="nomsg();return true"></a></td></tr></table></td></tr><tr><td>显示文字:
            <input type=text name="showstr" value="typhoon start" onchange="addtext()">
          </td></tr><tr><td><input type=hidden name="tempval" value="">代码如下:<br><textarea wrap=soft name=code cols=62 rows=6">


起始颜色结束颜色
页: [1]
查看完整版本: 综合类这个东东能帮你生成彩色文字脚本的代码