Ver Mensaje Individual
  #1 (permalink)  
Antiguo 04/10/2011, 13:20
Avatar de jorgelpadronb
jorgelpadronb
 
Fecha de Ingreso: agosto-2011
Ubicación: Cuba
Mensajes: 281
Antigüedad: 13 años, 7 meses
Puntos: 37
Pregunta Problema con fadein de imagenes

Saludos. Amigos especialistas en javascript, tengo un problema que no se como resolver y tal vez ustedes me puedan ayudar a entender por qué no funciona. Es un código para mostrar una imagen con fadein. El problema es que se queda en el primer nivel de opacidad y jamás alcanza el 100% de opacidad. Es como si no terminara el siclo de timeout. Revísenlo, tal vez logren ver algo que yo no he visto:
Código:
      function ShowP(i,t){
        // 'P'+i es el id de la imagen que se va a mostrar y t es la cantidad total de imágenes
          for(a = 1; a <= t; a++){
            //esto es para ocultar todas las imágenes
            elm = document.getElementById('P'+ a);
            elm.style.display = 'none';
         }
         //esto es para mostrar la imagen deseada
         elm = document.getElementById('P'+ i);
         elm.style.display = 'block';
         //aquí llamo a la función para iniciar el ciclo
         Anim(0,elm,10);
      }
      function Anim(a,e,t){
         if(a<1){
             //la animacion se realiza solamente si el contador a es menor que 1
             a += 0.1;
              //aquí establezco el nivel de opacidad segón el contador a para todos los                  navegadores
              if (document.all){ 
                //esto es para IE, como siempre hay q programarlo a parte
                e.style.filter = 'alpha(opacity='+(a*1000)+')';
              }else{
                // Safari 1.2, posterior Firefox y Mozilla, CSS3
                e.style.opacity = a;
                
                // anteriores Mozilla y Firefox
                e.style.MozOpacity = a;
                
                // Safari anterior a 1.2, Konqueror
                e.style.KHTMLOpacity = a;  
              }              
              //aquí llamo recursivamente a la función Anim con un setTimeout mientras a sea menor que 1
              time = setTimeout("Anim(a,e,t)",t);
         }else{
              //si el contador a es mayor o igual que 1 no aumenta de 1
              a = 1;
              //entonces pongo 100% de opacidad para todos los navegadores
              if (document.all){ 
                //esto es para IE, como siempre hay q programarlo a parte
                e.style.filter = 'alpha(opacity='+(a*1000)+')';
              }else{
                // Safari 1.2, posterior Firefox y Mozilla, CSS3
                e.style.opacity = a;
                
                // anteriores Mozilla y Firefox
                e.style.MozOpacity = a;
                
                // Safari anterior a 1.2, Konqueror
                e.style.KHTMLOpacity = a;  
              }
         }
      }
Espero que me puedan ayudar, gracias.