> Manuales > Taller de Javascript

Cómo realizar un efecto rollover, para que una imagen cambie por otra al pasar el ratón por encima. Veremos cómo lo puedes hacer mediante Javascript.

Rollover con Javascript

Este artículo aborda una técnica para cambiar el src de una imagen al pasar el ratón por encima de ella. Lo que pasa es que lo hace con Javascript, cuando hoy no sería necesaria programación para conseguirlo, ya que podemos usar simplemente CSS y la pseudo-clase :hover.

Incluso aunque no podamos cambiar con CSS el atributo src de una imagen, podríamos recurrir a técnicas alternativas como usar imágenes de fondo, que sí que podrías cambiarlos mediante CSS.

No obstante, aunque actualmente exista en CSS un mecanismo más sencillo de conseguir un efecto rollover este artículo te puede enseñar a tratar eventos mouseover y mouseout con Javascript, así como a utilizar alguna de las características más importantes del objeto imagen que incorpora Javascript.

Hacer que cambie una imagen al pasar el ratón por encima, como invitando a pulsar le llamamos rollover. Es uno de los efectos más vistosos que podemos incluir en una página web con unas pocas líneas de Javascript, y sin necesida de saber programar.

Vamos a ver la técnica por la práctica y con una elemental receta:

1. Nombramos la imagen

Ponemos en la página la imagen que tiene el dibujo apagado. Además le asignamos un nombre, para poder referirnos a ella mediante JavaScript.

<img src="dibujo_apagado.gif" name="imagen1">

2. Ponemos un enlace en la imagen

Ahora ponemos el enlace al que queremos navegar en el momento en el que el usuario pinche en el.

<a href="ir_a.html"> ... </a>

3. Empezamos con JavaScript

Debemos colocar dos atributos HTML al enlace que nos van a servir para realizar el efecto buscado.

OnMouseOver, col él indicaremos, mediante JavaScirpt, la acción a realizar cuando se pose el ratón encima de la imagen.
OnMouseOut nos sirve para definir el evento de retirar el ratón de la imagen,

<a href="ir_a.html" onmouseover="-Código JavaScript-" onmouseout="-Código JavaScript-">

4. Tomamos las imágenes con JavaScript

Vamos a declarar dos variables con JavaScript para guardar las imágenes iluminada y apagada. Para ello vamos a utilizar la etiqueta <SCRIPT> de HTML. El script lo podemos colocar en cualquier sitio, pero sería adecuado colocarlo antes de la imagen.

Los números que vereis corresponden con la anchura y la altura de la imagen que estais tomando.

<script language=javascript>
    var iluminada = new Image(84,34)
    iluminada.src = "dibujo_iluminado.gif"
    var apagada = new Image(84,34)
    apagada.src = "dibujo_apagado.gif"
</script>

5. Escribimos el código de los eventos

Para acceder a un elemento de JavaScript utilizamos la jerarquía de objetos de JavaScript. Puede ser complicada, pero nuestro objetivo es simple, así lo haremos:

window.document['nombre_de_la_imagen'].src = variable_imagen_javascript.src

En concreto, los atributos HTML de los eventos onmouseover y onmouseout quedrán así:

onmouseover="window.document['imagen1'].src= iluminada.src

onmouseout="window.document['imagen1'].src = apagada.src

5. Este es el codigo completo

Para que tengas más facilidad de recuperar este ejemplo puedes encontrar a continuación el código completo del efecto del rollover con Javascript.

<script language=javascript>
   iluminada = new Image(84,34)
   iluminada.src = "dibujoiluminado.gif"
   apagada = new Image(84,34)
   apagada.src = "dibujoapagado.gif"
</script>
<a href="ir_a.html"
    onmouseover="window.document['imagen1'].src = iluminada.src"
    onmouseout="window.document['imagen1'].src = apagada.src"
>
    <img src="images/eugimlogo.gif" border=0 name="imagen1" width=84 height=34>
</a>

Esto es lo único que debes hacer para iluminar una imagen, es un primer paso, ahora puedes probar con un grupo de imagenes para crear una barra de navegación dinámica con Javascript! Aunque recuerda siempre que si existe un mecanismo con CSS para realizar lo mismo que con Javascript es generalmete preferible, en el caso de los efectos hover te recomiendo estudiar otras alternativas basadas en el lengaje de estilos y :hover.

Miguel Angel Alvarez

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

Manual