> Manuales > Taller de Javascript

Un ejemplo en el que realizamos precarga y manipulación de varias imágenes en la página, con las que podríamos construir un bonito navegador dinámico con Javascript.

Navegador dinámico javascript

Este artículo te muestra cómo manipular el src de una imagen para mostrar otra imagen al poner el ratón por encima. Además te muestra cómo realizar la precarga de imágenes en el navegador. Todo esto se realiza sobre un conjunto de imágenes, con lo que podríamos conseguir un navegador dinámico.

Las técnicas de Javascript para manipulación de las imágenes te podrían valer para aplicar a otros ejemplos. De hecho aquí tienes un buen ejemplo de precarga de imágenes que podrías usar también en otros contextos. Sin embargo, si tienes una necesidad similar te sugerimos que primero evalues la posibilidad de hacerlo solamente con CSS y la pseudo-clase hover.

Vamos a ver como hacer, con Javascript y unas cuantas imágenes, una barra de navegación para una página web, que cambie cuando el ratón pase por encima.

Esta ayuda técnica está pensada para leerla a continuación del informe Rollover con javascript, publicado en desarrolloweb, pues contiene las bases sobre las que vamos a trabajar ahora.

1. Construimos las imágenes

Tenemos que construir dos versiones de barra de navegación, una que esté iluminada, por asi decirlo, y otra que esté un poco mas pagagada. Al pasar el ratón cambiaremos de una a otra.

2. Creamos la barra con HTML

Con una tabla de HTML vamos a hacer la barra de navegacion para la página, aun sin movimiento. Con estos detalles:

<table cellspacing="0" cellpadding="0" border="0">
<tr>
    <td><a href="portada.html"><img src="portada1.gif" width=110 height=16 alt="Portada" border="0" name="imagen1"></a></td>
</tr>
<tr>
    <td><a href="aficciones.html"><img src="aficciones1.gif" width=110 height=16 alt="Aficciones" border="0" name="imagen2"></a></td>
</tr>
<tr>
    <td><a href="curriculum.html"><img src="curriculum1.gif" width=110 height=16 alt="Curriculum" border="0" name="imagen3"></a></td>
</tr>
<tr>
    <td><a href="mitierra.html"><img src="mitierra1.gif" width=110 height=16 alt="Mi tierra" border="0" name="imagen4"></a></td>
</tr>
<tr>
    <td><a href="amigos.html"><img src="amigos1.gif" width=110 height=16 alt="Amigos" border="0" name="imagen5"></a></td>
</tr>
<tr>
    <td><a href="links.html"><img src="links1.gif" width=110 height=16 alt="Links" border="0" name="imagen6"></a></td>
</tr>
</table>

3. Precargamos las imágenes

Para tener las imágenes ya en nuestro explorador antes de que se vayan a utilizar, debemos precargarlas usando Javascript, asi conseguiremos que el efecto de rollover sea rápido, y cambien las imágenes velozmente según se pase el ratón.

Utilizaremos este código, que se coloca en la cabecera del documento HTML:

<script>

   iluminada1 = new Image(110,16)
   iluminada1.src = "portada2.gif"
   apagada1 = new Image(110,16)
   apagada1.src = "portada1.gif"
  
   iluminada2 = new Image(110,16)
   iluminada2.src = "aficciones2.gif"
   apagada2 = new Image(110,16)
   apagada2.src = "aficciones1.gif"
  
   iluminada3 = new Image(110,16)
   iluminada3.src = "curriculum2.gif"
   apagada3 = new Image(110,16)
   apagada3.src = "curriculum1.gif"
  
   iluminada4 = new Image(110,16)
   iluminada4.src = "mitierra2.gif"
   apagada4 = new Image(110,16)
   apagada4.src = "mitierra1.gif"
  
   iluminada5 = new Image(110,16)
   iluminada5.src = "amigos2.gif"
   apagada5 = new Image(110,16)
   apagada5.src = "amigos1.gif"
  
   iluminada6 = new Image(110,16)
   iluminada6.src = "links2.gif"
   apagada6 = new Image(110,16)
   apagada6.src = "links1.gif"     
  
</script>

4. Los eventos

Tenemos que definir los eventos onmouseover y onmouseout para cada uno de los enlaces, indicando el cambio de la imagen a iluminada y a apagada respectivamente.

onmouseover="window.document['imagen1'].src =iluminada1.src"
onmouseout="window.document['imagen1'].src = apagada1.src"

onmouseover="window.document['imagen2'].src =iluminada2.src"
onmouseout="window.document['imagen2'].src = apagada2.src"

onmouseover="window.document['imagen3'].src =iluminada3.src"
onmouseout="window.document['imagen3'].src = apagada3.src"

onmouseover="window.document['imagen4'].src =iluminada4.src"
onmouseout="window.document['imagen4'].src = apagada4.src"

onmouseover="window.document['imagen5'].src =iluminada5.src"
onmouseout="window.document['imagen5'].src = apagada5.src"

onmouseover="window.document['imagen6'].src =iluminada6.src"
onmouseout="window.document['imagen6'].src = apagada6.src"

5. Código entero

Eso es todo. A continuación podemos ver el código entero de este ejemplo:

<html>
<head>
 <title>Navegador</title>
<script>

   iluminada1 = new Image(110,16)
   iluminada1.src = "portada2.gif"
   apagada1 = new Image(110,16)
   apagada1.src = "portada1.gif"
  
   iluminada2 = new Image(110,16)
   iluminada2.src = "aficciones2.gif"
   apagada2 = new Image(110,16)
   apagada2.src = "aficciones1.gif"
  
   iluminada3 = new Image(110,16)
   iluminada3.src = "curriculum2.gif"
   apagada3 = new Image(110,16)
   apagada3.src = "curriculum1.gif"
  
   iluminada4 = new Image(110,16)
   iluminada4.src = "mitierra2.gif"
   apagada4 = new Image(110,16)
   apagada4.src = "mitierra1.gif"
  
   iluminada5 = new Image(110,16)
   iluminada5.src = "amigos2.gif"
   apagada5 = new Image(110,16)
   apagada5.src = "amigos1.gif"
  
   iluminada6 = new Image(110,16)
   iluminada6.src = "links2.gif"
   apagada6 = new Image(110,16)
   apagada6.src = "links1.gif"     
  
</script>
</head>

<body bgcolor="#6e6d52">
<table cellspacing="0" cellpadding="0" border="0">
<tr>
    <td><a href="portada.html" onmouseover="window.document['imagen1'].src =iluminada1.src" onmouseout="window.document['imagen1'].src = apagada1.src"><img src="portada1.gif" width=110 height=16 alt="Portada" border="0" name="imagen1"></a></td>
</tr>
<tr>
    <td><a href="aficciones.html" onmouseover="window.document['imagen2'].src =iluminada2.src" onmouseout="window.document['imagen2'].src = apagada2.src"><img src="aficciones1.gif" width=110 height=16 alt="Aficciones" border="0" name="imagen2"></a></td>
</tr>
<tr>
    <td><a href="curriculum.html" onmouseover="window.document['imagen3'].src =iluminada3.src" onmouseout="window.document['imagen3'].src = apagada3.src"><img src="curriculum1.gif" width=110 height=16 alt="Curriculum" border="0" name="imagen3"></a></td>
</tr>
<tr>
    <td><a href="mitierra.html" onmouseover="window.document['imagen4'].src =iluminada4.src" onmouseout="window.document['imagen4'].src = apagada4.src"><img src="mitierra1.gif" width=110 height=16 alt="Mi tierra" border="0" name="imagen4"></a></td>
</tr>
<tr>
    <td><a href="amigos.html" onmouseover="window.document['imagen5'].src =iluminada5.src" onmouseout="window.document['imagen5'].src = apagada5.src"><img src="amigos1.gif" width=110 height=16 alt="Amigos" border="0" name="imagen5"></a></td>
</tr>
<tr>
    <td><a href="links.html" onmouseover="window.document['imagen6'].src =iluminada6.src" onmouseout="window.document['imagen6'].src = apagada6.src"><img src="links1.gif" width=110 height=16 alt="Links" border="0" name="imagen6"></a></td>
</tr>
</table>

</body>
</html>

Evidentemente, hay muchas otras maneras de hacer una barra de navegación, pero esta es una buena forma. Con un poco de creatividad podrás crear unas bonitas imágenes que hagan unos bonitos efectos al pasar el ratón por encima.

Miguel Angel Alvarez

Fundador de DesarrolloWeb.com y la plataforma de formación online EscuelaIT. Com...

Manual