Rollover de Imágenes con Mootools

El efecto rollover consiste en cambiar una propiedad cuando el mouse pasa encima del elemento, veamos como cambiar la imagen mostrada cuando se pasa encima con el mouse. Para ello utilizaremos Mootools, el cual tiene métodos para acceder y modificar los elementos html de manera sencilla y lo haremos incluyéndola directamente desde Google Ajax Libraries API.

img-rollover

Creando los elementos HTML
Haremos el rollover de imágenes para un menú, entonces crearemos un div para el menú el cual contendrá los enlaces con imágenes.

  1. <div id="menu">
  2.     <a href="#"><img src="img/btinicio.gif" width="42" height="19" /></a>
  3.     <a href="#"><img src="img/btproductos.gif" width="69" height="19" /></a>
  4.     <a href="#"><img src="img/btservicios.gif" width="61" height="19" /></a>
  5.     <a href="#"><img src="img/btcontacto.gif" width="62" height="19" /></a>
  6. </div>

Las imágenes de rollover tendrán el mismo nombre que las imágenes iniciales pero les terminarán en “-o”, entonces si una imagen es btinicio.gif, la imagen de rollover será btinicio-o.gif.

Incluyendo Mootools
En necesario incluir Mootools, actualmente se encuentra en la versión 1.2. En nuestro caso lo haremos directamente desde Google Ajax Libraries API el cual brinda hosting para acelerar la carga y ahorrar ancho de banda. Entonces elegimos la versión minificada.

  1. <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/mootools/1.2.3/mootools-yui-compressed.js"></script>

Implementando el rollover
Entonces para crear el rollover, primero seleccionamos todos las imágenes que se encuentran en el div con identificador “menu“, luego de ello obtenemos la extensión de cada imágenes para posteriormente agregarle el termnación “-o”. Entonces tendremos el siguiente código:

  1. window.addEvent('domready', function() {
  2.     $$('#menu img').each(function(img){
  3.         var src = img.getProperty('src');
  4.         var ext = src.substring(src.lastIndexOf('.'), src.length);
  5.         img.addEvent('mouseenter', function() {
  6.             this.setProperty('src', src.replace(ext, '-o'+ext));
  7.         });
  8.         img.addEvent('mouseleave', function() {
  9.             this.setProperty('src', src);
  10.         });
  11.     });
  12. });

Como pueden ver utilizamos los eventos mouseenter para detectar cuando el mouse esta encima de la imagen para cambiar de imagen y mouseleave que detecta cuando hemos salido de la imagen para restaurar la imagen original.

No existen Comentarios.

Comentar

En este blog los comentarios están moderados, serán mostrados cuando el administrador los apruebe. Por favor, evita comentarios ofensivos u obscenos por que no serán aprobados.
Si deseas publicar código fuente debes hacerlo entre las etiquedas <code> y </code>, además debes reemplazar los carácteres < por &lt; y > por &gt;.

(Requerido)

(Requerido, no será publicado)

(Requerido)

(Tags aceptados: <a> <em> <strong> <code> <ul> <li>)