Rollover con javascript

  • Por
Aprende a hacer un efecto de iluminación sobre una imagen al pasar el ratón por encima. Desde un punto de vista práctico, en unos minutos serás capaz de hacerlo tu mismo.
Ejemplo de rollover
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">


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>
iluminada = new Image(84,34)
iluminada.src = "dibujo_iluminado.gif"
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

<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!

En este archivo zip puedes encontrar el código y las imágenes del ejemplo de arriba.
.ziprollover.zip 16Kb

Autor

Miguel Angel Alvarez

Miguel es fundador de DesarrolloWeb.com y la plataforma de formación online EscuelaIT. Comenzó en el mundo del desarrollo web en el año 1997, transformando su hobby en su trabajo.

Compartir

Comentarios

Mary De Nóbrega

27/10/2006
Una forma más sencilla de hacer el rollover es: <img src="imagen.gif" onmouseover="this.src='imagen2.gif'" onmouseout="this.src='imagen.gif'">

Con el mouse encima se verá la imagen2, cuando lo quitas queda la imagen inicial.

nedelka

06/9/2010
Rollover
gracias me sirvio bastante el ejemplo

itachi

11/10/2010
DUDA
Hola:

He pinchado sobre "Todo sobre el pagerank de google"...........y me sale esto....

Un saludo

luis

19/10/2010
Rollover con javascript
Gracias es excelente el aporte y asesoria en esto temas. Estoy iniciandome en esta actividad de diseñador de paginas Web . Tengo un programa que me hace todo. Pero me encantaria aprender el lenguaje. Que programa me recomiendan que no sea dreamwever que para mi lo encuentro complicado. Puedo usar el expresion o easy web 7. Cual me recomiendan. Bueno la pregunta es bajo que programa uso este Tips de Rollover con Javascript.
Un abrazo y muchas gracias

Alexis

04/1/2011
Pregunta
Perdon por la ignorancia, pero me pregunto, porque voy a querer hacer lo que veo en el ejemplo de esta forma si puedo hacerlo desde el CSS con la funcion a:hover diciendole que cambie el background, seguramente tiene una explicacion, por eso pregunto, Saludos. Alexis.

paleta17

15/2/2012
bloqueo de efectos
Tengo un problema, actualmente estoy armando una página que utiliza este efecto pero al entrar a la pagina internet Explorer nos lo bloquea, me podrán recomendar algo para evitar esto