搜索
 找回密码
 加入

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

ctgwglzc 2007-5-11 21:14:07 2276
首先新建一个文件取名为“rainbow.js”,内容为:
  1. //******************************************
  2. //*                                                                                *
  3. //*                超链接不停变色                                       *
  4. //*         Presented by New-Age.com.cn                       *
  5. //*                                                                                *
  6. //******************************************
  7. var rate = 20;
  8. var obj;
  9. var act = 0;
  10. var elmH = 0;
  11. var elmS = 128;
  12. var elmV = 255;
  13. var clrOrg;
  14. var TimerID;
  15. if (navigator.appName.indexOf("Microsoft",0) != -1 && parseInt(navigator.appVersion) >= 4) {
  16. Browser = true;
  17. } else {
  18. Browser = false;
  19. }
  20. if (Browser) {
  21. document.onmouseover = doRainbowAnchor;
  22. document.onmouseout = stopRainbowAnchor;
  23. }
  24. function doRainbow()
  25. {
  26. if (Browser && act != 1) {
  27. act = 1;
  28. obj = event.srcElement;
  29. clrOrg = obj.style.color;
  30. TimerID = setInterval("ChangeColor()",100);
  31. }
  32. }
  33. function stopRainbow()
  34. {
  35. if (Browser && act != 0) {
  36. obj.style.color = clrOrg;
  37. clearInterval(TimerID);
  38. act = 0;
  39. }
  40. }
  41. function doRainbowAnchor()
  42. {
  43. if (Browser && act != 1) {
  44. obj = event.srcElement;
  45. while (obj.tagName != 'A' && obj.tagName != 'BODY') {
  46. obj = obj.parentElement;
  47. if (obj.tagName == 'A' || obj.tagName == 'BODY')
  48. break;
  49. }
  50. if (obj.tagName == 'A' && obj.href != '') {
  51. act = 1;
  52. clrOrg = obj.style.color;
  53. TimerID = setInterval("ChangeColor()",100);
  54. }
  55. }
  56. }
  57. function stopRainbowAnchor()
  58. {
  59. if (Browser && act != 0) {
  60. if (obj.tagName == 'A') {
  61. obj.style.color = clrOrg;
  62. clearInterval(TimerID);
  63. act = 0;
  64. }
  65. }
  66. }
  67. function ChangeColor()
  68. {
  69. obj.style.color = makeColor();
  70. }
  71. function makeColor()
  72. {
  73. if (elmS == 0) {
  74. elmR = elmV; elmG = elmV; elmB = elmV;
  75. }
  76. else {
  77. t1 = elmV;
  78. t2 = (255 - elmS) * elmV / 255;
  79. t3 = elmH % 60;
  80. t3 = (t1 - t2) * t3 / 60;
  81. if (elmH < 60) {
  82. elmR = t1; elmB = t2; elmG = t2 + t3;
  83. }
  84. else if (elmH < 120) {
  85. elmG = t1; elmB = t2; elmR = t1 - t3;
  86. }
  87. else if (elmH < 180) {
  88. elmG = t1; elmR = t2; elmB = t2 + t3;
  89. }
  90. else if (elmH < 240) {
  91. elmB = t1; elmR = t2; elmG = t1 - t3;
  92. }
  93. else if (elmH < 300) {
  94. elmB = t1; elmG = t2; elmR = t2 + t3;
  95. }
  96. else if (elmH < 360) {
  97. elmR = t1; elmG = t2; elmB = t1 - t3;
  98. }
  99. else {
  100. elmR = 0; elmG = 0; elmB = 0;
  101. }
  102. }
  103. elmR = Math.floor(elmR);
  104. elmG = Math.floor(elmG);
  105. elmB = Math.floor(elmB);
  106. clrRGB = '#' + elmR.toString(16) + elmG.toString(16) + elmB.toString(16);
  107. elmH = elmH + rate;
  108. if (elmH >= 360)
  109. elmH = 0;
  110. return clrRGB;
  111. }
复制代码


将保存好的文件上传到服务器根目录下。//这里提醒一句:一定要保存为utf-8编码
然后打开后台兵编辑模板header.htm,找到
  1. <script type="text/javascript" src="common/common.js"></script>
复制代码


在其后面添加如下代码
  1. <script type="text/javascript" src="rainbow.js"></script>
复制代码


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

3 回复

yellky
2007-5-5 00:09:18
点击查看详情
用htc格式的岂不更好???
admin
2007-5-11 15:20:05
原帖由 yellky 于 2007-5-5 00:09 发表
用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>     普通文字或段落


  1. <PUBLIC:COMPONENT URN="rainbow" name="darainbow()"/>
  2. <PUBLIC:ATTACH  EVENT = "oncontentready" ONEVENT ="beginIt()"/>
  3. <SCRIPT language="JAVASCRIPT">
  4. var Kill_ID=null;
  5. var internalValue;
  6. var originalValue;
  7. function putValue(){
  8.         element.innerHTML=internalValue;
  9.         encapsulate();
  10.         startSwirl();
  11. }
  12. function eventHandler(){
  13.         clearInterval(Kill_ID);
  14.         internalValue=element.value;
  15.         element.detachEvent("onpropertychange",eventHandler);
  16.         if(event.propertyName=="value"){
  17.                 element.innerHTML=internalValue;
  18.                 putValue();
  19.         } else startSwirl();
  20.         element.attachEvent("onpropertychange",eventHandler);
  21. }
  22. function swirl(){
  23.         var I;
  24.         I=ran(internalValue.length-1,0);
  25.         if(element.children(I) != null)element.children(I).style.color=randomColor();
  26. }
  27. function startSwirl(){
  28.         if (element.swirlInterval == null)
  29.                 element.swirlInterval=50;
  30.         if ((internalValue!=null) && (element.swirlInterval!=0))
  31.                 Kill_ID=setInterval(swirl,element.swirlInterval);
  32. }
  33. function encapsulate(){
  34.         var I;
  35.         var tempStr="";
  36.         for (I=0; I < internalValue.length; I++){
  37.                         tempStr += "<SPAN style="color:"+randomColor()+"">" + internalValue.substr(I,1) + "</SPAN>";
  38.                 }
  39.         innerHTML=tempStr;
  40. }
  41. function ran(upperbound, lowerbound){
  42.         return(parseInt((upperbound - lowerbound + 1) * Math.random() + lowerbound));
  43. }
  44. function randomColor(){
  45.         var R=ran(255,0);
  46.         var G=ran(255,0);
  47.         var B=ran(255,0);
  48.         R=R.toString(16);
  49.         G=G.toString(16);
  50.         B=B.toString(16);
  51.         if (R.length==1)R="0"+R;
  52.         if (G.length==1)G="0"+G;
  53.         if (B.length==1)B="0"+B;
  54.         return("#"+R+G+B);
  55. }
  56. function beginIt(){
  57.         internalValue=element.value;
  58.         originalValue=element.innerHTML;
  59.         if (internalValue==null)
  60.                 internalValue=element.innerHTML;
  61.         putValue();
  62.         element.attachEvent("onpropertychange",eventHandler);
  63. }
  64. function clearIt(){
  65.         clearInterval(Kill_ID);
  66.         element.detachEvent("onpropertychange",eventHandler);
  67.         element.innerHTML=originalValue;
  68. }
  69. </script>

复制代码
高级模式
游客