Monday, November 9, 2009

Multi - Color Link Hover Effect

B Share You must have observed how my hyperlinks change color on mouse hover. Normally on mouse hover only a single color change is seen but thanks to Dynamic Drive we can now easily change the color of our links to several colors. I have modified the code a bit for simplicity. This tutorial is really simple to follow and uses a JavaScript which we will save inside Blogger so there will be no external linking at all. Let’s start now,

To add this Flashing Link effect to your blogs do the following,

  1. Go To Layout > Edit HTML
  2. Search For
  3. And just above paste the code below,

<script type='text/javascript'>

//<![CDATA[

var rate = 20;

if (document.getElementById)

window.onerror=new Function("return true")

var objActive; // The object which event occured in

var act = 0; // Flag during the action

var elmH = 0; // Hue

var elmS = 128; // Saturation

var elmV = 255; // Value

var clrOrg; // A color before the change

var TimerID; // Timer ID


if (document.all) {

document.onmouseover = doRainbowAnchor;

document.onmouseout = stopRainbowAnchor;

}

else if (document.getElementById) {

document.captureEvents(Event.MOUSEOVER | Event.MOUSEOUT);

document.onmouseover = Mozilla_doRainbowAnchor;

document.onmouseout = Mozilla_stopRainbowAnchor;
}

function doRainbow(obj)

{
if (act == 0) {

act = 1;

if (obj)

objActive = obj;

else

objActive = event.srcElement;

clrOrg = objActive.style.color;

TimerID = setInterval("ChangeColor()",100);

}

}

function stopRainbow()

{
if (act) {

objActive.style.color = clrOrg;

clearInterval(TimerID);

act = 0;
}

}

function doRainbowAnchor()

{

if (act == 0) {

var 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 != '') {

objActive = obj;

act = 1;

clrOrg = objActive.style.color;

TimerID = setInterval("ChangeColor()",100);

}

}

}

function stopRainbowAnchor()

{
if (act) {

if (objActive.tagName == 'A') {

objActive.style.color = clrOrg;

clearInterval(TimerID);

act = 0;
}

}

}

function Mozilla_doRainbowAnchor(e)

{
if (act == 0) {

obj = e.target;

while (obj.nodeName != 'A' && obj.nodeName != 'BODY') {

obj = obj.parentNode;

if (obj.nodeName == 'A' || obj.nodeName == 'BODY')

break;
}

if (obj.nodeName == 'A' && obj.href != '') {

objActive = obj;

act = 1;

clrOrg = obj.style.color;

TimerID = setInterval("ChangeColor()",100);

}

}

}

function Mozilla_stopRainbowAnchor(e)

{

if (act) {

if (objActive.nodeName == 'A') {

objActive.style.color = clrOrg;

clearInterval(TimerID);

act = 0;
}
}
}

function ChangeColor()

{
objActive.style.color = makeColor();

}
function makeColor()

{
// Don't you think Color Gamut to look like Rainbow?

// HSVtoRGB

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).toString(16);

elmG = Math.floor(elmG).toString(16);

elmB = Math.floor(elmB).toString(16);

if (elmR.length == 1) elmR = "0" + elmR;

if (elmG.length == 1) elmG = "0" + elmG;

if (elmB.length == 1) elmB = "0" + elmB;

elmH = elmH + rate;

if (elmH >= 360)

elmH = 0;

return '#' + elmR + elmG + elmB;

}

//]]>

</script>

You can change the value of var rate = 20. This controls the speed with which links change color.

That’s All!

Preview Your Templates To see The New Change.







If you enjoyed this post and wish to be informed whenever a new post is published, then make sure you subscribe to our regular Email Updates!




Kindly Bookmark this Post using your favorite Bookmarking service:
Technorati Digg This Stumble Twitter
YOUR ADSENSE CODE GOES HERE
blog comments powered by Disqus
 

Directories

blog directory Visit blogadda.com to discover Indian blogs My Zimbio Free Link Exchange Search Engine Optimization SEO
Search Engine Optimization and SEO Tools Search Engine Submission - AddMe

Vote For Us

My BlogCatalog BlogRank

Tut Zone1

Follow Me On Twitter

TwitterCounter for @tutzone1

Tut Zone1 Copyright © 2009 Community is Designed by Bie Blogger Template

]