|
Desarrollo web y tecnología |
|
|
¿Quieres colaborar? click
|
|
|
ENTRADAS RECIENTES » Primeros detalles sobre Photoshop CS6 » Curso online (en español) de HTML5 por Microsoft » Twenty Twelve (2012) será el nuevo tema por defecto en WordPress » Hoja de referencia de etiquetas HTML5 » Google seguirá patrocinando Firefox » Google Zeitgeist 2011: Qué es lo que ha buscado el mundo » Chrome 16, ahora con perfiles de usuario encuesta ÚLTIMOS COMENTARIOS » Ricardo Rodriguez - Posiciona Web en WordAds, el "AdSense" de WordPress.com: Hola David.. Gracias por compartir esta excelente noticia. Pienso que se nos v ... ver comentario » » NoticiasTecnologia en Plugin para manejar microdatos en WordPress: Interesante, para tomarlo en cuenta en cualquier tipo de sitio montado en Wordpr ... ver comentario » » TecnoArk en Apple es el mayor fabricante de teléfonos inteligentes en 2011: Interesante artículo, aunque sin lugar a dudas el próximo año será un difícil añ ... ver comentario » » LordCaos en Candy, un cliente de chat en JavaScript: Precisamente lo que buscaba, gracias... ... ver comentario » » JUAN CARLOS en Ordenar y filtrar resultados de consultas MySQL con PHP, sin saturar la base de datos: me gustan mucho tus publicaciones, gracias por ayudarnos a resolver nuestras dud ... ver comentario » » nuglam en Google cierra varios de sus servicios: no van a cerrar igoogle. solo desactivarán sus caráteristicas sociales. igual un ... ver comentario » » David en Blogger y Picassa cambian de nombre: Pues efectivamente, parece que de momento la cosa está igual que estaba... ... ver comentario » » Pepa en Blogger y Picassa cambian de nombre: Pues desde que publicaste esto no han cambiado nada, no? ... ver comentario » » Mariano en Google+ ¿un fracaso antes de empezar?: Las pabadas que hay que leer de DAW... NO PUEDE VOLTEARLO, ya lo intento 3 veces ... ver comentario » » DJMASTER en Bucles for en PHP: Igual que en C# ! :D ... ver comentario » PATROCINADORES » Cómo hacer una página web |
Rollover múltiple en JavaScript Por David | 20/mayo/2009 08:20h |
Indudablemente, podríamos basarnos en lo estudiado en el rollover simple para crear uno múltiple, pues basta establecer en los eventos de los enlaces una llamada a la propiedad src de cada imagen, o también crear 2 funciones para cada imagen y llamar a cada una de ellas en el momento oportuno. No vamos a hacer esto, ya que repetiríamos código innecesario, pero tampoco vamos a crear unas funciones basadas en cambiar matrices de imágenes mediante bucles, porque creo que entonces no se vería claro el porqué de cada función y variable. Por lo tanto, vamos a crear un código lo más simple y claro posible, tal que se pueda entender bien su uso, ya que el objeto de este artículo es aprender porqué se hacen las cosas, no presentar scripts muy avanzados y bonitos. Vamos a basarnos en lo aprendido hasta ahora, llamando a una misma función en los dos eventos, función que va a admitir dos parámetros: el name de la imagen a cambiar y el nombre del objeto Image cuyo src va a ser el nuevo que asignemos. Nuestro menú va a estar formado por 3 imágenes, cada una con un enlace, y lógicamente lo primero que debemos hacer será precargar todas ellas, tanto activas como iniciales. Vamos a ver primero el código completo necesario para el menú y su efecto, y posteriormente explicaremos el código someramente: <html> home=new Image(80,20); home.src=”boton1off.gif”; function cambia(nombre,activa) </script> </head> Como hemos dicho antes, lo primero que hacemos es precargar las seis imágenes que vamos a usar, asignando cada una de ellas a un objeto Image que creamos con el método constructor conocido: las tres iniciales (home, html y java) y las tres activas (homeOn, htmlOn y javaOn). Seguidamente, creamos nuestra única función, cambia(nombre,activa) , que va a admitir como parámetros nombre, que es el name de la imagen del BODY que va a cambiarse, y activa, que es nombre del objeto Image cuya imagen asociada (mediante su parámetro src) es la que deseamos que aparezca mediante la función. Con este planteamiento podemos cambiar las veces que queramos cualquier imagen de la página; basta para ello decirle a la función qué imagen debe cambiar y por cuál. Entonces, aprovechamos los enlaces de cada una de las tres imágenes de nuestro menú para llamar a la función cambia, pasandola en cada onmouseOver el name de la imagen contenida en el enlace y el nombre del objeto Image que define la nueva imagen a aparecer, y llamando a la función de nuevo en cada evento onmouseOut para volver las cosas a su estado inicial. En la función hemos escrito document.images[nombre].src , con el parámetro nombre entre paréntesis porque la imagen es en este caso un elemento de la matriz images, que contiene todas las imágenes del documento (también se podía haber escrito document[nombre], ya que document contiene todos los objetos predefinidos del documento, sean imágenes, enlaces o formularios), y desde el evento hemos pasado este parámetro entre comillas simples porque como atributo de un objeto hay que hacerlo así (si se la hubiésemos pasado sin comillas nos daría un error, ya que le estaríamos pasando entonces un objeto, y no un atributo, que es lo que name es en realidad). Y desde estos eventos hemos pasado el valor del parámetro activa sin comillas porque en la escritura de la función tenemos activa.src , es decir, hace referencia a la propiedad src de un objeto Image. Como norma general, cuando a una función de JavaScript le pasamos como parámetro un atributo (name de una imagen o enlace, id de una capa, etc.) debemos hacerlo siempre entre comillas, mientras que si le pasamos como parámetro un objeto, hay que hacerlo sin incluirlo entre ellas. No creo que sean necesarias más explicaciones, ya que el código es bastante simple. Sólo decir que muchos autores introducen en el código inicial de la función cambia un condicionante if(document.images) , y que con ello lo que persiguen es que el código siguiente sólo se ejecute en el caso de que el navegador acepte este objeto de JavaScript. Podemos tranquilamente pasar de este condicionante, ya que la gran mayoría de los navegadores actuales soportan el objeto Image de JavaScript. - Artículo de Luciano Moreno
Artículo anterior
Artículo siguiente
También puedes consultar en los diferentes foros de desarrollo web de este sitio web. Referencias externas a este artículo (pingbacks y trackbacks): 0 Puedes enlazar este artículo, desde tu web o blog, a: http://vitaminaweb.com/rollover-multiple-en-javascript_32 O bien utilizar el siguiente código HTML: <a href="http://vitaminaweb.com/rollover-multiple-en-javascript_32">Rollover múltiple en JavaScript</a> |
||||||||||