a ver... estoy empezando con javascript. Leyendo y empollando por mi cuenta, con lo que todavía estoy muy verde. Pero recurro a vosotros, para ver si me podeis echar una mano en esto del aprendizaje.
Os pongo un código para un efecto rollover que he echo. Es muy malo, lo sé, pero he intentado evitar desde un principio los recursos de internet y complicarme la vida, para entender algunos conceptos que se me escapan.
Código:
y en el html a la imagen le pasaría al evento onMouseOver="definitiva();"function cambiarImagen(el){ var images = document.getElementById('minizoom_buttons').getElementsByTagName("img"); for(i=0; i < images.length; i++){ if(el==images[i].src){ var imgSrcSp = images[i].src.split('images/'); var namePos = imgSrcSp[1].indexOf('.png'); var imgName = imgSrcSp[1].substring(0, namePos); images[i].src= imgSrcSp[0]+'images/'+ imgName +'Over.png'; return images[i].src; } } } function definitiva(){ if (this.image.src != cambiarImagen(this.src)) this.image.src= cambiarImagen(this.src); else { var normal = cambiarImagen(this.src).split('Over'); this.image.src = normal.join(''); } }
Todavía no me he preocupado por el onMouseOut pero bueno...
Lo que hago es sacar una cadena, la de la ruta a la imagen en la primera función y sumarle el "Over.png", luego devuelvo esa cadena y se la paso a traves de la a otra función que establece si esa cadena se corresponde con la ruta actual de la imagen, si no es así la sustituye por el valor de la primera función, y si no el resto.
Vale, esa es la lógica que pretendía seguir. Pero no funciona. Seguramente tenga errores garrafales el planteamiento. Es por lo que acudo a vosotros, para ver si me podeis ir aclarando en que no funciona.
Muchas gracias por vuestro tiempo y un saludo