网页之文字的循环闪动特效
<script language="javascript" type="text/javascript"><!--
// convert a single digit (0 - 16) into hex
function enHex(aDigit)4u%XEKd^ pyB
{
return("0123456789ABCDEF".substring(aDigit, aDigit+1))
}
// convert a hex digit into decimal-`Yv]8s+Feo%tx
function deHex(aDigit)
{X2}2]5Rb*U6g
return("0123456789ABCDEF".indexOf(aDigit))lV%c[!k` ND
}^8R7a iJV2xua
j'TBQJ!c J3z
// Convert a 24bit number to hex
function toHex(n)k h!yvF"J.h:Qj
{
return (enHex((0xf00000 & n) >> 20) +p2Vd"Q[tNE
enHex((0x0f0000 & n) >> 16) +
enHex((0x00f000 & n) >> 12) +
enHex((0x000f00 & n) >> 8) +#M[b/Uyh Ax^*^!n#d
enHex((0x0000f0 & n) >> 4) +
enHex((0x00000f & n) >> 0))F] e*\pF
}
// Convert a six character hex to decimalK"_3~ q&a%Q*n
function toDecimal(hexNum)X/w]/B_#L _%W
{
var tmp = ""+hexNum.toUpperCase()[Bg J,k c` L _C!en
while (tmp.length < 6) tmp = "0"+tmpH,f#L^@4z
return ((deHex(tmp.substring(0,1)) << 20) +x^8x:LG3O9K
(deHex(tmp.substring(1,2)) << 16) + h.d~(YU
(deHex(tmp.substring(2,3)) << 12) + Z.YW"oW~&u~#Y
(deHex(tmp.substring(3,4)) << 8) +x js#I9B fI AJ
(deHex(tmp.substring(4,5)) << 4) +d6v3n4b z{,S[
(deHex(tmp.substring(5,6))))GsM|!i2B3v$X5I
}
///////////////////Shimmering Links/////////////////////#|2W(V7kcg.X
//global variables
var hoverColour;h%ozI1w6ps,y
var numLinks;
var rate;
var numFadeLevels;
var bgR;(Yl6k JW|*lj3J(j
var bgG;
var bgB;
var currR;;Y ^A,K@T2O
var currG;
var currB;_(q2l;[+wP6M
var count;
var fadeOut;
var continuous;
var newColour;
var tID;owg*a4k |)Ib5f
var redInterval;ZH`gN/i;^
var greenInterval;8g9S8Q:\DmI#pw%Na
var blueInterval;}Y-_Z+]!P&`4d
function initLinks(mouseOverColour, numberOfLinks, fadeOutColour).v(PX]|
{'L F Pg-P
hoverColour = mouseOverColour;-yNj KH
numLinks = numberOfLinks;9H_uTZa
rate = 1; u([#E;FV2^W6m2H
numFadeLevels = 30;
function initArray(theArray, length, val)
{
for(i=0;i<length;i++)
{
theArray[i] = val;
}2f3QjF4O0bg*i ge;@1E'D
}
bgR = '0000' + fadeOutColour.substring(1,3)
bgG = '0000' + fadeOutColour.substring(3,5)
bgB = '0000' + fadeOutColour.substring(5,7)
currR = new Array(numLinks);K9@F2t+WH_0z
currG = new Array(numLinks);
currB = new Array(numLinks);
count = new Array(numLinks);!X/KB)U8G?4O}
fadeOut = new Array(numLinks);[:V0Q AK0W:GI9K
continuous = new Array(numLinks);k&ly1ceR
newColour = new Array(numLinks);
tID = new Array(numLinks);
redInterval = toDecimal(bgR) / numFadeLevels;3T.a;d;]&jT0TBD
greenInterval = toDecimal(bgG) / numFadeLevels;
blueInterval = toDecimal(bgB) / numFadeLevels;,_\ mdh
initArray(currR,numLinks,0);fDz_2ai
initArray(currG,numLinks,0);`W o2\ L)B
initArray(currB,numLinks,0);KJCNPH|&n
initArray(count,numLinks,0);
initArray(fadeOut,numLinks,true);
initArray(continuous,numLinks,true);"l_zq`g#q+F
} Iq7Py!ecQ
function startFade(id)
{
if(fadeOut[id] == true)!p$L]*?7A
{ /*move colour towards background colour (increment)*/
currR[id] += redInterval;
currG[id] += greenInterval;
currB[id] += blueInterval;u$Z W `/M$h)Z}
newColour[id] = '#' + (toHex(currR[id])).substring(4,6) + (toHex(currG[id])).substring(4,6) + (toHex(currB[id])).substring(4,6);5t,O0YALx
if(++count[id] == numFadeLevels)#_'knqy
{
fadeOut[id] = false;
}9@Q V ^(p
}
else3JG$x)Pk,H sTpI
{
currR[id] -= redInterval;1^.?2JiNM
currG[id] -= greenInterval;'E#{|$augG?2F
currB[id] -= blueInterval;
t/tC-x4v#S
newColour[id] = '#' + (toHex(currR[id])).substring(4,6) + (toHex(currG[id])).substring(4,6) + (toHex(currB[id])).substring(4,6);5b)N!~$fX
if(--count[id] == 0)!|z(O zM
$`o^ Y ht _~9KH
{4H*CmRTj
o6K9}%?[
fadeOut[id] = true;"Y){3P,FI r.b.d'F8E
t9Oi x CU*OyWp
}
-rf&{%EaL2xJ[
}
if(continuous[id] == true)3~ WeV8DJ7t-E
{&o/Yc%Ur;ME
document.getElementById(id).style.color = newColour[id];
4vv2S7f6]
}(R-l$Iv:p/],Z
2t#IX0ffg)c
else
d(`u3^!y.F$b-\
{~+QZq+zc
document.getElementById(id).style.color = hoverColour;%D[e!H+?i
}
clearTimeout(tID[id]);3CVN|PE N
tID[id]=setTimeout('startFade(' + id + ')', rate);4gQ:`,a~,}QY
3ko0Q)^"rK+rK
}lar$qJ^+`
function continueFade(id) bbx^ O5mM
{UZt[7X7zG*q
GoI_?
continuous[id] = true;c8WXN(M(H]
/i3_#G"E^P9Yr
}