一段彩色的文字
下面框中为脚本显示区
a
l
w
a
y
s
w
a
n
t
e
d
t
o
b
e
a
g
e
n
i
u
s
?
.
.
.
w
e
l
l
.
.
.
d
o
i
t
,
i
n
.
.
.
s
n
a
z
z
y
,
e
y
e
c
a
t
c
h
i
n
g
,
g
r
a
d
i
e
n
t
c
o
l
o
r
s
!
b
u
t
u
h
m
,
j
u
s
t
b
e
c
a
r
e
f
u
l
n
o
t
t
o
o
v
e
r
d
o
i
t
脚本说明: 把如下代码加入<body>区域中: <SCRIPT language="JavaScript"> var browser = "unknown"; var version = 0; if (navigator.userAgent.indexOf("Opera") >= 0) browser = "opera"; else if (navigator.userAgent.indexOf("obot") >= 0) browser = "robot"; else if (navigator.appName.indexOf("etscape") >= 0) browser = "netscape"; else if (navigator.appName.indexOf("icrosoft") >= 0) browser = "msie"; version = parseFloat(navigator.appVersion); if (isNaN(version)) version = 0; if ((browser == "msie")&&(version == 2)) version = 3; // lookup table var tohex = new Array(256); var hex = "0123456789ABCDEF"; var count = 0; for (x=0; x<16; x++) { for (y=0; y<16; y++) { tohex[count] = hex.charAt(x) + hex.charAt(y); count++; } } //ColorCode constructor function ColorCode(hexcode) { if (hexcode.length == 7) { this.r = parseInt(hexcode.substring(1,3),16); this.g = parseInt(hexcode.substring(3,5),16); this.b = parseInt(hexcode.substring(5,7),16); } else if (hexcode.length == 6) { this.r = parseInt(hexcode.substring(0,2),16); this.g = parseInt(hexcode.substring(2,4),16); this.b = parseInt(hexcode.substring(4,6),16); } else { this.r = this.g = this.b = 0; alert("Error: ColorCode constructor failed"); } if (isNaN(this.r)||isNaN(this.g)||isNaN(this.b)) alert("Error: ColorCode constructor failed"); } // ColorList constructor function ColorList(hexcodes) { var i = 0; var c = 0; this.codes = new Array(Math.round(hexcodes.length/7)); while (i < hexcodes.length) { if (isNaN(parseInt(hexcodes.substring(i,i+6),16))) ++i; else { this.codes[c] = new ColorCode(hexcodes.substring(i,i+6)); i += 7; ++c; } } this.len = c; } function interpolate (x1, y1, x3, y3, x2) { if (x3 == x1) return y1 else return (x2-x1)*(y3-y1)/(x3-x1) + y1 } // x=index of letter, y=number of letters, z=number of colors function lowcolorindex (x, y, z) { if (y == 1) return 0 else return Math.floor( (x*(z-1))/(y-1) ) } function hicolorindex (x, y, z, low) { if ( low*(y-1) == x*(z-1) ) return low else if (y == 1) return 0 else return Math.floor( (x*(z-1))/(y-1) + 1 ) } function gradient (thetext,thecolors) { if (((browser == "netscape")||(browser == "msie")||(browser == "opera"))&&(version>=3.0)) { var colors = new ColorList(thecolors); var numcolors = colors.len; var numchars = thetext.length; var rr = 0; var gg = 0; var bb = 0; var lci = 0; //lower color index var hci = 0; //high color index for (i=0; i<numchars; ++i) { lci = lowcolorindex(i, numchars, numcolors); hci = hicolorindex(i, numchars, numcolors, lci); rr = Math.round(interpolate( lci/(numcolors-1), colors.codes[lci].r, hci/(numcolors-1), colors.codes[hci].r, i/(numchars-1))); gg = Math.round(interpolate( lci/(numcolors-1), colors.codes[lci].g, hci/(numcolors-1), colors.codes[hci].g, i/(numchars-1))); bb = Math.round(interpolate( lci/(numcolors-1), colors.codes[lci].b, hci/(numcolors-1), colors.codes[hci].b, i/(numchars-1))); if (browser == "opera") { rr = 255 - rr; gg = 255 - gg; bb = 255 - bb; } document.write(thetext.charAt(i).fontcolor(tohex[rr]+tohex[gg]+tohex[bb])); } } else document.write(thetext); // unrecognized browser, better not to attempt anything fancy } </SCRIPT> <SCRIPT language="JavaScript"> gradient("always wanted to be a genius?","FF0000 FFFFFF 0000FF"); document.write('<BR>'); gradient("...well...do it, in...","444444 DDDDDD 444444"); document.write('<BR><FONT size=+1><TT><B>'); gradient("snazzy, eyecatching, gradient colors!","FF8888 FFFF88 88FF88 88FFFF 8888FF FF88FF"); document.write('</B></TT></FONT><BR><FONT size=2>'); gradient("but uhm, just be careful not to overdo it","884488 444488 448888 448844 888844 884444"); document.write("</FONT><BR>"); </SCRIPT>