Publishers of technology books, eBooks, and videos for creative people

Home > Articles > Web Design & Development > Ajax and JavaScript

JavaScript: Visual QuickStart Guide: Working with Images

  • Print
  • + Share This
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.
This chapter is from the book

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 red-circle-a.jpg, and then it is overwritten by a red arrow when the user moves the mouse over the image red-circle-b.jpg. 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:

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

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

  3. onmouseout="document.images['arrow'].src= 'images/arrow_off.gif'">

    Then, when the mouse moves away, the image arrow_off.gif is swapped back in.

  4. <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;
}
  • + Share This
  • 🔖 Save To Your Account