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

# Working with Images in JavaScript

• Print
This chapter is from the book

## Displaying a Random Image

If your site is rich with graphics, or if you are displaying digital artwork, then you may want to have a random image from your collection appear when the user enters your site. Once again, JavaScript to the rescue! The extremely simple Listing 4.20 shows the required HTML, and Listing 4.21 provides the JavaScript. shows the result of the script, in this case images of a stuffed lion, tiger, and bear (oh, my!).

#### Listing 4.20 This simple HTML creates the page for a random image.

```<!DOCTYPE html>
<html>
<title>Random Image</title>
<script src="script10.js"></script>
<body>
<img src="images/spacer.gif" width="305" height="312" id="myPicture" alt="some image">
</body>
</html>```

#### Listing 4.21 You can display random images on your page with this script, which uses JavaScript’s Math.random method to generate a random number.

```window.onload = choosePic;

`var myPix = new Array("images/lion.jpg","images/tiger.jpg","images/bear.jpg");`

function choosePic() {
`var randomNum = Math.floor(Math.random() * myPix.length);`
`document.getElementById("myPicture").src = myPix[randomNum];`
```

To display a random image:

1. `var myPix = new Array("images/lion.jpg", "images/tiger.jpg", "images/bear.jpg");`

Here we build an array of three images, and stuff it into the variable myPix.

2. `var randomNum = Math.floor(Math.random() * myPix.length);`

The variable called randomNum gets the value of a math expression that’s best read from the inside outwards. Math.random generates a random number between 0 and 1, which is then multiplied by myPix.length, which is the number of items in the array (in this case, it’s 3). Math.floor rounds the result down to an integer, which means that the number must be between 0 and 2.

3. `document.getElementById("myPicture").src = myPix[randomNum];`

This says that the source of the image myPicture is set based on the array myPix, and the value at this moment is dependent on the value of randomNum.