Ver Mensaje Individual
  #1 (permalink)  
Antiguo 27/11/2008, 02:30
basa
 
Fecha de Ingreso: abril-2008
Mensajes: 50
Antigüedad: 16 años, 10 meses
Puntos: 0
ayuda con efecto rollover

Buenas a todos,
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:
        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('');
            }
        }
y en el html a la imagen le pasaría al evento onMouseOver="definitiva();"

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