Rollover Buttons

home portfolio resume about contact

Step 1

Create your button images.
You will create 3 images for each button--1 for the "up" statate, 1 for the "over" state and 1 for the "down" state.

home button = home_up.gif
home button = home_over.gif
home button = home_down.gif
portfolio button = portfolio_up.gif
portfolio button = portfolio_over.gif
portfolio button = portfolio_down.gif
resume button = resume_up.gif
resume button = resume_over.gif
resume button = resume_down.gif
about button = about_up.gif
about button = about_over.gif
about button = about_down.gif
contact button = contact_up.gif
contact button = contact_over.gif
contact button = contact_down.gif
 

 

Step 2

Place the up version of your button on your page:

<img src="home_up.gif" alt="home" border="0" />

 

Step 3

Add a name attribute to your image.

<img src="home_up.gif" alt="home" border="0" name="homeImg" />

Each <img /> that has a rollover will need to have a different name.

 

Step 4

Make the image clickble by adding the <a> tag:

<a href="foo.html">
<img src="home_up.gif" alt="home" border="0" name="homeImg" />
</a>

 

Step 5

Add the following attributes to your <a> tag--onmouseover, onmouseout, onmousedown and onmouseup:

<a href="foo.html" onmouseover="" onmouseout="" onmousedown="" onmouseup="">
<img src="home_up.gif" alt="home" border="0" name="homeImg" />
</a>

 

Step 6

Add the following inside the "quotes" for onmouseover

<a href="foo.html" onmouseover="document.homeImg.src='home_over.gif'" onmouseout="" onmousedown="" onmouseup="">
<img src="home_up.gif" alt="home" border="0" name="homeImg" />
</a>

This tells the browser to swap home_up.gif to home_over.gif when you mouse over it.
Note that 'home_over.gif' are inside of 'single quotes'
It's OK if your <a> tag wraps to the next line, but make sure it wraps naturally--do not hit the ENTER key to go to the next line, or the browser might think the tag is broken.

 

Step 7

Add the following inside the "quotes" for onmousout:

<a href="foo.html" onmouseover="document.homeImg.src='home_over.gif'" onmouseout="document.homeImg.src='home_up.gif'" onmousedown="" onmouseup="">
<img src="home_up.gif" alt="home" border="0" name="homeImg" />
</a>

This tells the browser to restore the button to its original state of home_up.gif.
Note that 'home_up.gif' is inside of 'single quotes'

 

Step 8

Add the following inside the "quotes" for onmousedown

<a href="foo.html" onmouseover="document.homeImg.src='home_over.gif'" onmouseout="document.homeImg.src='home_up.gif'" onmousedown="document.homeImg.src='home_down.gif'" onmouseup="">
<img src="home_up.gif" alt="home" border="0" name="homeImg" />
</a>

This tells the browser to swap home_over.gif to home_down.gif when you press down on it.
Note that 'home_down.gif' is inside of 'single quotes'

 

Step 9

Add the following inside the "quotes" for onmouseup

<a href="foo.html" onmouseover="document.homeImg.src='home_over.gif'" onmouseout="document.homeImg.src='home_up.gif'" onmousedown="document.homeImg.src='home_down.gif'"
onmouseup="
document.homeImg.src='home_over.gif'">
<img src="home_up.gif" alt="home" border="0" name="homeImg" />
</a>

This tells the browser to swap home_down.gif with home_over.gif--since you'd be releasing the button while still over it.
Note that 'home_over.gif' is inside of 'single quotes'

 

Step 10

Repeat this for every button image.
You do not need to have a "down" state if you don't want to.
Just don't use onmousedown and onmouseup attributes in your <a> tag.

 

Step 11

To make the rollovers faster and smoother, preload the images using the following Javascript.

Put the following code somewhere before the closing </head> tag:

<script language="JavaScript">

// this preloads home_up.gif into the browser's cache
home_up = new Image(125, 50);
home_up.src = "home_up.gif";

// this preloads home_over.gif into the browser's cache
home_over = new Image(125, 50);
home_over.src = "home_over.gif";

// this preloads home_down.gif into the browser's cache
home_down = new Image(125, 50);
home_down.src = "home_down.gif";

// add these lines for every button image

</script>

In the example above:

Do this for every button.

This is a little bit of extra work, but this minimizes lag time when the user mouses over and mouses down on the buttons.