Now the words ‘hyperlink’ and ‘sexy’ rarely frequent the same sentence in my household, but something which appears to have come into fashion lately (namely I’m using it ;)) is the fading in of the hover state on hyperlinks. So instead of simply specifying the :hover
state in your CSS, you use JavaScript or CSS3 to spice up the whole hovering thing. Here’s what we will be creating, now lets see how we might go about doing it.
First off let’s take a look at the CSS3 way – apparently all the cool kids are using it. If we had a link which we wanted to ‘sexify’ we might do something like:
.spice { color:blue; transition: all .2s linear; -o-transition: all .2s linear; -moz-transition: all .2s linear; -webkit-transition: all .2s linear; } .spice:hover { color: red; }
Bam! Right there we have one sexy hyperlink using only one CSS3 transition. So when we hover over a link with the class of ‘spice’ we should see it fade to a lovely bright red, and then upon mousing out, back to that delicious blue. But what happens if (God forbid) a user visits in IE8 or something?! We have support for Opera, Firefox, Chrome and Safari, but not IE. Well surprise surprise we need to have a fall-back for older browsers. And for that, we will be using jQuery (other JavaScript frameworks are available).
Before we continue I should add that I would always suggest using the CSS3 way over the jQuery method, but in any case this is how we do it:
$(function(){ var color = ''; $('.spice-jq').hover(function(){ color = $(this).css('color'); $(this).animate({'color':'red'},200); }, function(){ $(this).animate({'color':color},200); }) });
Above we first wait for the DOM to be finished loading, and then create ourselves a variable called ‘color’ to hold the value of the link’s colour in it’s normal state (if all your links are the same colour, you can just replace every occurrence of ‘color’ with whatever colour you want). We then animate the colour of the link back and fourth using the hover()
function. But before you wonder why the code above doesn’t work on your site, I should add that for colour animations, the jQuery Color Plugin is required – so go ahead and include that in your page before the above script.
So now we could using something like Modernizr to detect if the user’s browser has CSS3 transitions support, and if not, whack the above jQuery code onto our page. And with that, you should now have a set of beautiful links on your site that make it that little bit slicker.
Comments
One response to “Spice up your Hyperlinks!”
Ah yes, nicely put.