超链接点击后彩虹变色效果
首先新建一个文件取名为“rainbow.js”,内容为://******************************************
//* *
//* 超链接不停变色 *
//* Presented by New-Age.com.cn *
//* *
//******************************************
var rate = 20;
var obj;
var act = 0;
var elmH = 0;
var elmS = 128;
var elmV = 255;
var clrOrg;
var TimerID;
if (navigator.appName.indexOf("Microsoft",0) != -1 && parseInt(navigator.appVersion) >= 4) {
Browser = true;
} else {
Browser = false;
}
if (Browser) {
document.onmouseover = doRainbowAnchor;
document.onmouseout = stopRainbowAnchor;
}
function doRainbow()
{
if (Browser && act != 1) {
act = 1;
obj = event.srcElement;
clrOrg = obj.style.color;
TimerID = setInterval("ChangeColor()",100);
}
}
function stopRainbow()
{
if (Browser && act != 0) {
obj.style.color = clrOrg;
clearInterval(TimerID);
act = 0;
}
}
function doRainbowAnchor()
{
if (Browser && act != 1) {
obj = event.srcElement;
while (obj.tagName != 'A' && obj.tagName != 'BODY') {
obj = obj.parentElement;
if (obj.tagName == 'A' || obj.tagName == 'BODY')
break;
}
if (obj.tagName == 'A' && obj.href != '') {
act = 1;
clrOrg = obj.style.color;
TimerID = setInterval("ChangeColor()",100);
}
}
}
function stopRainbowAnchor()
{
if (Browser && act != 0) {
if (obj.tagName == 'A') {
obj.style.color = clrOrg;
clearInterval(TimerID);
act = 0;
}
}
}
function ChangeColor()
{
obj.style.color = makeColor();
}
function makeColor()
{
if (elmS == 0) {
elmR = elmV; elmG = elmV; elmB = elmV;
}
else {
t1 = elmV;
t2 = (255 - elmS) * elmV / 255;
t3 = elmH % 60;
t3 = (t1 - t2) * t3 / 60;
if (elmH < 60) {
elmR = t1; elmB = t2; elmG = t2 + t3;
}
else if (elmH < 120) {
elmG = t1; elmB = t2; elmR = t1 - t3;
}
else if (elmH < 180) {
elmG = t1; elmR = t2; elmB = t2 + t3;
}
else if (elmH < 240) {
elmB = t1; elmR = t2; elmG = t1 - t3;
}
else if (elmH < 300) {
elmB = t1; elmG = t2; elmR = t2 + t3;
}
else if (elmH < 360) {
elmR = t1; elmG = t2; elmB = t1 - t3;
}
else {
elmR = 0; elmG = 0; elmB = 0;
}
}
elmR = Math.floor(elmR);
elmG = Math.floor(elmG);
elmB = Math.floor(elmB);
clrRGB = '#' + elmR.toString(16) + elmG.toString(16) + elmB.toString(16);
elmH = elmH + rate;
if (elmH >= 360)
elmH = 0;
return clrRGB;
}
将保存好的文件上传到服务器根目录下。//这里提醒一句:一定要保存为utf-8编码
然后打开后台兵编辑模板header.htm,找到
<script type="text/javascript" src="common/common.js"></script>
在其后面添加如下代码<script type="text/javascript" src="rainbow.js"></script>
保存好之后更新缓存就可以了! 用htc格式的岂不更好??? 原帖由 yellky 于 2007-5-5 00:09 发表 http://www.kofans.cn/bbs/static/image/common/back.gif
用htc格式的岂不更好???
你编写个看看 将代码保存为: xxx.htc
使用方法:<a href="" target="" style="behavior:url(xxx.htc文件路径)">彩虹文字</a> links链接
<a style="behavior:url(xxx.htc文件路径)">彩虹文字</a> 普通文字或段落
<PUBLIC:COMPONENT URN="rainbow" name="darainbow()"/>
<PUBLIC:ATTACHEVENT = "oncontentready" ONEVENT ="beginIt()"/>
<SCRIPT language="JAVASCRIPT">
var Kill_ID=null;
var internalValue;
var originalValue;
function putValue(){
element.innerHTML=internalValue;
encapsulate();
startSwirl();
}
function eventHandler(){
clearInterval(Kill_ID);
internalValue=element.value;
element.detachEvent("onpropertychange",eventHandler);
if(event.propertyName=="value"){
element.innerHTML=internalValue;
putValue();
} else startSwirl();
element.attachEvent("onpropertychange",eventHandler);
}
function swirl(){
var I;
I=ran(internalValue.length-1,0);
if(element.children(I) != null)element.children(I).style.color=randomColor();
}
function startSwirl(){
if (element.swirlInterval == null)
element.swirlInterval=50;
if ((internalValue!=null) && (element.swirlInterval!=0))
Kill_ID=setInterval(swirl,element.swirlInterval);
}
function encapsulate(){
var I;
var tempStr="";
for (I=0; I < internalValue.length; I++){
tempStr += "<SPAN style=\"color:"+randomColor()+"\">" + internalValue.substr(I,1) + "</SPAN>";
}
innerHTML=tempStr;
}
function ran(upperbound, lowerbound){
return(parseInt((upperbound - lowerbound + 1) * Math.random() + lowerbound));
}
function randomColor(){
var R=ran(255,0);
var G=ran(255,0);
var B=ran(255,0);
R=R.toString(16);
G=G.toString(16);
B=B.toString(16);
if (R.length==1)R="0"+R;
if (G.length==1)G="0"+G;
if (B.length==1)B="0"+B;
return("#"+R+G+B);
}
function beginIt(){
internalValue=element.value;
originalValue=element.innerHTML;
if (internalValue==null)
internalValue=element.innerHTML;
putValue();
element.attachEvent("onpropertychange",eventHandler);
}
function clearIt(){
clearInterval(Kill_ID);
element.detachEvent("onpropertychange",eventHandler);
element.innerHTML=originalValue;
}
</script>
页:
[1]