JavaScript: Visual QuickStart Guide: Working with Images
- Creating Rollovers
- Creating More Effective Rollovers
- Building Three-State Rollovers
- Triggering Rollovers from a Link
- Making Multiple Links Change a Single Rollover
- Working with Multiple Rollovers
- Creating Cycling Banners
- Adding Links to Cycling Banners
- Building Wraparound Slideshows
- Displaying a Random Image
- Cycling Images with a Random Start
One of the best (and most common) uses of JavaScript is to add visual interest to Web pages by animating graphics, and that’s what this chapter is all about. Making an image on a Web page change when the user moves the mouse over the image, thereby making the page react to the user, is one of the most common—and effective—tricks you can learn in JavaScript. This rollover, as it is called, is easy to implement yet has many applications, as you’ll see.
Rollovers are a great tool, but you can do much more than rollovers with JavaScript, such as automatically change images, create ad banners, build slideshows, and display random images on a page.
In this chapter, you’ll learn how to make JavaScript do all of these image tricks. Let’s get started.
Table 4.1 Just Enough HTML—Images
Tag |
Attribute |
Meaning |
img |
Contains the attributes that describe the image to be displayed by the browser |
|
src |
Contains the URL of the image, relative to the URL of the Web page |
|
width |
Contains the width (in pixels) at which the browser will display the image |
|
height |
Contains the height (in pixels) at which the browser will display the image |
|
alt |
Used for non-visual browsers in place of the image |
|
id |
A unique identifier, which JavaScript will use to manipulate the image |
Creating Rollovers
The idea behind rollovers is simple. You have two images. The first, or original, image is loaded and displayed along with the rest of the Web page by the user. When the user moves the mouse over the first image, the browser quickly swaps out the first image for the second, or replacement, image, giving the illusion of movement or animation.
Listing 4.1 gives you the bare-bones rollover; the whole thing is done within a standard image link. First a blue arrow is loaded , and then it is overwritten by a red arrow when the user moves the mouse over the image . The blue arrow is redrawn when the user moves the mouse away.
Listing 4.1. Here’s the simplest way to do a rollover, within a link tag.
<!DOCTYPE html>
<html>
<head>
<title>A Simple Rollover</title>
<link rel="stylesheet" href="script01.css">
</head>
<body>
<a href="next.html" onmouseover= "document.images['arrow'].src= 'images/arrow_on.gif'" onmouseout= "document.images['arrow'].src= 'images/arrow_off.gif'"><img src= "images/arrow_off.gif" id="arrow" alt="arrow"></a>
</body>
</html>
Some styles get applied to elements on the page, and we’ve broken those styles out into a separate CSS file, as seen in Listing 4.2.
To create a rollover:
- <a href="next.html"
The link begins by specifying where the browser will go when the user clicks the image, in this case to the page next.html.
- onmouseover="document.images['arrow'].src= 'images/arrow_on.gif'"
When the user moves the mouse over the image (the src of the arrow id), the replacement image arrow_on.gif, which is inside the images directory, is written to the document window.
- onmouseout="document.images['arrow'].src= 'images/arrow_off.gif'">
Then, when the mouse moves away, the image arrow_off.gif is swapped back in.
- <img src="images/arrow_off.gif" id="arrow" alt="arrow">
The image link defines the source of the original image for the page. We have included the alt attribute inside the image tag because alt attributes (which give non-graphical browsers a name or description of an image) are required if you want your HTML to be compliant with the W3C standards, and because using alt attributes helps make your page accessible to disabled users, such as visually impaired users who browse using screen readers.
Listing 4.2. This CSS file is used to style elements throughout many of the examples in this chapter.
body { background-color: #FFF; } img { border-width: 0; } img#arrow, img#arrowImg { width: 147px; height: 82px; } #button1, #button2 { width: 113px; height: 33px; } .centered { text-align: center; } #adBanner { width: 400px; height: 75px; }