Jump to content
xisto Community
Sign in to follow this  
iGuest

random link color

Recommended Posts

move yr cursor to a link 4 detail after paste this script after <body> tag:

<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>

Share this post


Link to post
Share on other sites

I have made it better.The Code can also work well both in Mozilla and IE now.

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; }

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...

Important Information

Terms of Use | Privacy Policy | Guidelines | We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.