Foros del Web » Programando para Internet » Javascript »

Alpha unos segundos

Estas en el tema de Alpha unos segundos en el foro de Javascript en Foros del Web. Hola, foreros: He buscado una funcion para que aparezca un div unos segundos, pero no la he encontrado, jeje... y si he encontrado algo parecido ...
  #1 (permalink)  
Antiguo 25/08/2008, 11:39
Avatar de salbatore  
Fecha de Ingreso: abril-2007
Ubicación: Springfield
Mensajes: 1.567
Antigüedad: 17 años, 1 mes
Puntos: 19
Alpha unos segundos

Hola, foreros:

He buscado una funcion para que aparezca un div unos segundos, pero no la he encontrado, jeje... y si he encontrado algo parecido a sido demasido complejo.

¿Como puedo hacer que un div aparezca unos segundos con alpha 0 al iniciarse, 100 en su maximo y 0 al finalizar?
  #2 (permalink)  
Antiguo 25/08/2008, 20:55
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años
Puntos: 834
Respuesta: Alpha unos segundos

Fijate si te sirve:
Código PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<
html xmlns="http://www.w3.org/1999/xhtml">
<
head>
<
meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<
title></title>
<
script>

function 
set_opacity(divval) {
  if (
typeof div.filters!='undefined') {
    
val *= 100;
    try {
      
div.filters.item("DXImageTransform.Microsoft.Alpha").opacity val;
    } catch (
e) { 
     
div.style.filter 'progid:DXImageTransform.Microsoft.Alpha(opacity='+val+')';
    }
  } else {
    
div.style.opacity val;
    
div.style.MozOpacity val
  }

var 
transicion=function(inicio,fin,segundos){
    var 
val=inicio+.0001;
    
set_opacity(thisval);
    
this.pasos=(fin-inicio)/100;
        
this.pausa=segundos*10;
    var 
_this=this;
    
this.intervalo=setInterval(
    function(){
        if(
val>=fin){
            
clearInterval(_this.intervalo);
            
_this.intervalo=null;
        }
        
val=val+_this.pasos;
        
set_opacity(_thisval);
    },
this.pausa);
}
window.onload=function(){
    var 
obj=document.getElementById('pp');
    
transicion.call(obj,0,1,5);
}
</script>
</head>

<body>
<div id="pp" style="background-color:#FF0000; width:100px;">EJEMPLO</div>
</body>
</html> 

Última edición por Panino5001; 28/08/2008 a las 01:42
  #3 (permalink)  
Antiguo 26/08/2008, 20:45
Avatar de salbatore  
Fecha de Ingreso: abril-2007
Ubicación: Springfield
Mensajes: 1.567
Antigüedad: 17 años, 1 mes
Puntos: 19
Respuesta: Alpha unos segundos

Hola,

Muchas gracias... es justo lo que estaba buscando...

Gracias de nuevo... jeje... soy feliz...
  #4 (permalink)  
Antiguo 05/10/2008, 17:23
Avatar de salbatore  
Fecha de Ingreso: abril-2007
Ubicación: Springfield
Mensajes: 1.567
Antigüedad: 17 años, 1 mes
Puntos: 19
Respuesta: Alpha unos segundos

Hola, Panino5001,

Se que va a sonar a novato e inutil total, jeje... Pero he intentado que la funcion que me das envede mostrar un div lo oculte, pero no lo consigo por ninguna forma, jeje...

¿Me puedes ayudar a hacer que la funcion oculte?, si es posible con la misma, jeje... que esta guapisima... jeje.
  #5 (permalink)  
Antiguo 05/10/2008, 20:29
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años
Puntos: 834
Respuesta: Alpha unos segundos

Mejor usar algo así tanto para aparecer como para desaparecer:
Código PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<
html xmlns="http://www.w3.org/1999/xhtml">
<
head>
<
meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<
title></title>
<
script>

function 
set_opacity(divvalue) {
    
div.style.opacity value;
    
div.style.MozOpacity value;
    
div.style.KhtmlOpacity value;
    
div.style.filter 'alpha(opacity=' value*100 ')';
    
div.style.zoom=1;//necesario para Explorer
}
var 
transicion=function(inicio,fin,segundos,callback){
    var 
_this=this;
    
this.test=0;
    if(
_this.intervalo)clearInterval(_this.intervalo);
    if(
this.val && Math.abs(fin-_this.val)<0.01)return;
    
this.val=!this.val?inicio<1?inicio+.0001:inicio:this.val;
    
set_opacity(thisthis.val);
    
this.pasos=(fin-inicio)/100;
    
this.pausa=segundos*10;
    
this.intervalo=setInterval(
    function(){
        if(
_this.test>99 || Math.abs(fin-_this.val)<0.01){
          
clearInterval(_this.intervalo);
          
_this.val=fin;
           
set_opacity(_this_this.val);
           if(
typeof callback=='function')
           
callback();
        }
        
_this.test++;
        
document.getElementById('log').innerHTML=_this.test;
        
_this.val=_this.val+_this.pasos;
        
set_opacity(_this_this.val);
    },
this.pausa);

window.onload=function(){
    var 
obj=document.getElementById('pp');
    
/*ejemplo si se quiere llamar a otra función después
    transicion.call(obj,1,0,5,function(){transicion.call(obj,0,1,5);});
    ó
    transicion.call(obj,1,0,5,function(){obj.style.display='none';});
    */
    
transicion.call(obj,1,0,5);
}
</script>
</head>

<body>
<div id="pp" style="background-color:#FF0000; width:100px;">EJEMPLO</div>
<div id="log"></div>

</body>
</html> 

Última edición por Panino5001; 05/10/2008 a las 20:36
  #6 (permalink)  
Antiguo 05/10/2008, 22:54
Avatar de salbatore  
Fecha de Ingreso: abril-2007
Ubicación: Springfield
Mensajes: 1.567
Antigüedad: 17 años, 1 mes
Puntos: 19
Respuesta: Alpha unos segundos

Hola, Panino5001,

Buff... que gusto ver estas respuestas... muchisimas gracias!!

Funciona fenomenal!
  #7 (permalink)  
Antiguo 05/10/2008, 23:00
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años
Puntos: 834
Respuesta: Alpha unos segundos

Me alegra que te sirva
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:20.