|
|
|
|
![]() ![]() |
| hellomyfriends |
Nov 25 2004, 04:43 AM
Post
#1
|
|
Guests |
move yr cursor to a link 4 detail after paste this script after <body> tag:
CODE <script language="javascript">
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; } </script> |
|
|
|
| Anonymous |
Dec 29 2004, 07:35 AM
Post
#2
|
|
Guests |
Thanx Friend 4 Sharing This 4 Us !!
|
|
|
|
| hellomyfriends |
Dec 29 2004, 02:50 PM
Post
#3
|
|
Guests |
You're welcome!I want to help people,
|
|
|
|
| Minisheep |
Jan 22 2005, 02:02 PM
Post
#4
|
|
Guests |
I have made it better.The Code can also work well both in Mozilla and IE now.
CODE addEvent(window, "load", make); var rate = 20; var act = 0; var elmH = 0; var elmS = 128; var elmV = 255; var clrOrg; var TimerID; function addEvent(obj, evType, fn){ if (obj.addEventListener){ obj.addEventListener(evType, fn, true); return true; }else if (obj.attachEvent){ var r = obj.attachEvent("on"+evType, fn); return r; }else { return false; } } function getParent(el, pTagName) { if (el == null) return null; else if (el.nodeType == 1 && el.tagName.toLowerCase() == pTagName.toLowerCase()) // Gecko bug, supposed to be uppercase return el; else return getParent(el.parentNode, pTagName); } function make() { if(!document.createElementNS) { document.createElementNS = function(ns,elt) { return document.createElement(elt); } } if(!document.links) { document.links = document.getElementsByTagName("a"); } for (var ti=0;ti<document.links.length;ti++) { var lnk = document.links[ti]; addEvent(lnk,"mouseover",doRainbowAnchor); addEvent(lnk,"mouseout",stopRainbowAnchor); addEvent(lnk,"focus",doRainbowAnchor); addEvent(lnk,"blur",stopRainbowAnchor); } } function doRainbowAnchor(e) { if (act != 1) { if (window.event && window.event.srcElement) { obj = window.event.srcElement; } else if (e && e.target) { obj = e.target; } if (!obj) return; if (obj.nodeType == 3) { // obj is a textnode -- ascend parents until we hit a link obj = getParent(lnk,"A"); } if (!obj) return; act = 1; clrOrg = obj.style.color; TimerID = setInterval("ChangeColor(obj)",100); } } function stopRainbowAnchor(e) { if (act != 0) { if (window.event && window.event.srcElement) { obj = window.event.srcElement; } else if (e && e.target) { obj = e.target; } if (!obj) return; if (obj.nodeType == 3) { // lnk is a textnode -- ascend parents until we hit a link obj = getParent(obj,"A"); } if (!obj) return; obj.style.color = clrOrg; clearInterval(TimerID); act = 0; } } function ChangeColor(obj) { 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; } |
|
|
|
| nareth |
Jan 22 2005, 02:12 PM
Post
#5
|
|
Guests |
can i see a live example please?
|
|
|
|
| Minisheep |
Jan 22 2005, 02:28 PM
Post
#6
|
|
Guests |
OK
Here is a example page. http://www.freewebs.com/yang1984/randcolor.html In fact ,addEvent function in this script is very useful,it can replace some Event script, for example CODE window.onload=make; Replace to: CODE addEvent(window, "load", make); It both works well in Mozilla and IE. |
|
|
|
| hellomyfriends |
Jan 23 2005, 04:16 AM
Post
#7
|
|
Guests |
Good work
|
|
|
|
![]() ![]() |
Similar Topics
|
Lo-Fi Version | Time is now: 23rd November 2008 - 09:31 AM |