En ocasiones puede resultar complicado lograr que los mapas se comporten como deseamos. En este artículo observaremos varios detalles que nos facilitarán trabajar con los mismos.
Supongamos una imagen que tiene asociado un único mapa a una zona rectangular en el centro de la misma. Se trata de una imagen que toda ella hace referencia a un tema mientras que la zona sensible y pulsable con el ratón se reduce a un rectángulo en el centro. Tendríamos este código:
<MAP NAME="map1"> <AREA SHAPE="rect" COORDS="0,12,104,44" HREF="http://www.dondesea.com/blablabla.html"> </MAP> <img src="image1.gif" width="104" height="55" alt="Texto alternativo" USEMAP="#map1" border="0">Tal como está escrito, al situar el ratón dentro de la imagen pero fuera del mapa el navegador nos mostraría el tooltip "Texto alternativo". Sin embargo, al movernos encima del mapa el tooltip desaparecería, a pesar de que el texto se asignó a la imagen entera. La solución es colocar el texto tanto al mapa como a la imagen:
<MAP NAME="map1"> <AREA SHAPE="rect" COORDS="0,12,104,44" HREF="http://www.dondesea.com/blablabla.html" alt="Texto alternativo"> </MAP> <img src="image1.gif" width="104" height="55" alt="Texto alternativo" USEMAP="#map1" border="0">Otra opción, quizá con mejor comportamiento, es aprovechar el atributo NOHREF de los elementos que definen las áreas:
<MAP NAME="map1"> <AREA SHAPE="rect" COORDS="0,12,104,44" HREF="http://www.dondesea.com/blablabla.html" alt="Texto alternativo"> <AREA SHAPE=DEFAULT NOHREF ALT="Texto alternativo"> </MAP> <img src="image1.gif" width="104" height="55" USEMAP="#map1" border="0">Es muy habitual ver páginas con menús que tienen botones que cambian de estado al pasar el ratón por encima y/o al pulsar sobre ellos. Estos efectos se controlan con los eventos onMouseLoqueSea. Lo curioso es que estos eventos se suelen utilizar muy a menudo con imágenes enteras. Un ejemplo típico sería éste:
<img src="image1.gif" width="104" height="55" border="0" onMouseOver="activar('img1');" onMouseOut="desactivar('img1');" HREF="http://www.dondesea.com/blablabla.html" NAME="img1">Que para funcionar, lógicamente, tendrán que haberse definido las funciones activar() y desactivar() en alguna parte de la página.
Sin embargo, si queremos que la imagen cambie sólo al entrar el ratón dentro del mapa, habrá que utilizar los eventos con el mapa en lugar de con la imagen:
<MAP NAME="map1"> <AREA SHAPE="rect" COORDS="0,12,104,44" HREF="http://www.dondesea.com/blablabla.html" alt="Texto alternativo" onMouseOver="activar('img1');" onMouseOut="desactivar('img1');"> <AREA SHAPE=DEFAULT NOHREF ALT="Texto alternativo"> </MAP> <img src="image1.gif" width="104" height="55" border="0" NAME="img1" USEMAP="#map1">En la misma línea, se podrían asignar diferentes cambios de imagen dependiendo del área sobre la que entre el ratón utilizando los eventos con cada área:
<MAP NAME="map1"> <AREA SHAPE="rect" COORDS="0,12,51,44" HREF="http://www.dondesea.com/blablabla.html" alt="Texto1" onMouseOver="activar_1_('img1');" onMouseOut="desactivar('img1');"> <AREA SHAPE="rect" COORDS="52,12,104,44" HREF="http://www.otrositio.com/guauguau.html" alt="Texto2" onMouseOver="activar_2_('img1');" onMouseOut="desactivar('img1');"> <AREA SHAPE=DEFAULT NOHREF ALT="Texto alternativo común"> </MAP> <img src="image1.gif" width="104" height="55" border="0" NAME="img1" USEMAP="#map1">Para ello deberemos tener definidas las funciones activar_1_(), activar_2_() y desactivar() en alguna parte de la página. Cada una de las 3 funciones asigna a document[imgName].src una de las 3 imágenes necesarias.
En cualquier caso, tiene que haber una concordancia entre el nombre con que se ha "bautizado" a la imagen (etiqueta NAME) y el parámetro que se pasa a las funciones.
Usuarios que han visto este tema también han visto...
- Forzar al navegador a no mostrar las barras de scroll
- La Internacionalización en el HTML
- Diferencias entre HTML y XML
- Qué es XHTML
- Controles de formularios en diseño web
Información legal | Política de Privacidad | Contacte con nosotros
Otro proyecto de Factoría de Internet. Copyright© 2003-2011 Factoría de Internet S.L.. Todos los derechos reservados.