ctgwglzc 发表于 2007-4-5 19:07:20

超链接点击后彩虹变色效果

首先新建一个文件取名为“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>

保存好之后更新缓存就可以了!

yellky 发表于 2007-5-5 00:09:18

用htc格式的岂不更好???

admin 发表于 2007-5-11 15:20:05

原帖由 yellky 于 2007-5-5 00:09 发表 http://www.kofans.cn/bbs/static/image/common/back.gif
用htc格式的岂不更好???
你编写个看看

yellky 发表于 2007-5-11 21:14:07

将代码保存为: 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]
查看完整版本: 超链接点击后彩虹变色效果