Foros del Web » Programando para Internet » Javascript »

style.display en efecto fade

Estas en el tema de style.display en efecto fade en el foro de Javascript en Foros del Web. Tengo el siguiente codigo para hacer un efecto fade en algun objeto, pero resulta que al desvanecerlo, este solo esta invisible, pero esta ahi, en ...
  #1 (permalink)  
Antiguo 22/12/2010, 19:00
Avatar de Tecktonikrazy  
Fecha de Ingreso: enero-2010
Mensajes: 224
Antigüedad: 14 años, 4 meses
Puntos: 3
Pregunta style.display en efecto fade

Tengo el siguiente codigo para hacer un efecto fade en algun objeto, pero resulta que al desvanecerlo, este solo esta invisible, pero esta ahi, en que parte le agrego element.style.display = 'none o 'block' para que el elemento no estorbe?

Código HTML:
<style type="text/css">
  .drag { position:absolute; cursor:move }
</style> 

Código Javascript:
Ver original
  1. var TimeToFade = 400.0;
  2.  
  3. function fade(eid)
  4. {
  5.   var element = document.getElementById(eid);
  6.   if(element == null)
  7.     return;
  8.    
  9.   if(element.FadeState == null)
  10.   {
  11.     if(element.style.opacity == null
  12.         || element.style.opacity == ''
  13.         || element.style.opacity == '1')
  14.     {
  15.       element.FadeState = 2;
  16.     }
  17.     else
  18.     {
  19.       element.FadeState = -2;
  20.     }
  21.   }
  22.    
  23.   if(element.FadeState == 1 || element.FadeState == -1)
  24.   {
  25.     element.FadeState = element.FadeState == 1 ? -1 : 1;
  26.     element.FadeTimeLeft = TimeToFade - element.FadeTimeLeft;
  27.   }
  28.   else
  29.   {
  30.     element.FadeState = element.FadeState == 2 ? -1 : 1;
  31.     element.FadeTimeLeft = TimeToFade;
  32.     setTimeout("animateFade(" + new Date().getTime() + ",'" + eid + "')", 33);
  33.   }  
  34. }
  35. function animateFade(lastTick, eid)
  36. {  
  37.   var curTick = new Date().getTime();
  38.   var elapsedTicks = curTick - lastTick;
  39.  
  40.   var element = document.getElementById(eid);
  41.  
  42.   if(element.FadeTimeLeft <= elapsedTicks)
  43.   {
  44.     element.style.opacity = element.FadeState == 1 ? '1' : '0';
  45.     element.style.filter = 'alpha(opacity = '
  46.         + (element.FadeState == 1 ? '100' : '0') + ')';
  47.     element.FadeState = element.FadeState == 1 ? 2 : -2;
  48.     return;
  49.   }
  50.  
  51.   element.FadeTimeLeft -= elapsedTicks;
  52.   var newOpVal = element.FadeTimeLeft/TimeToFade;
  53.   if(element.FadeState == 1)
  54.     newOpVal = 1 - newOpVal;
  55.  
  56.   element.style.opacity = newOpVal;
  57.   element.style.filter = 'alpha(opacity = ' + (newOpVal*100) + ')';
  58.  
  59.   setTimeout("animateFade(" + curTick + ",'" + eid + "');", 33);
  60. }


Código HTML:
<div class="drag" style="width:20px;height:20px;background-color:#CC0000"></div> 
__________________
I LOVE HTML (How To Make Love)
  #2 (permalink)  
Antiguo 23/12/2010, 00:01
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: style.display en efecto fade

Hola:

Usando display, deja de estar el objeto, y el resto suele "re-ajustarse", así que en vez de display sea mejor visibility, que si bien sigue estando ahí, no estorba, y el contenido no se ajuste.

Sobre donde ponerlo, supongo que una línea antes del return.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 23/12/2010, 19:42
Avatar de Tecktonikrazy  
Fecha de Ingreso: enero-2010
Mensajes: 224
Antigüedad: 14 años, 4 meses
Puntos: 3
Respuesta: style.display en efecto fade

Lo que pasa es que el elemento que voy a ocultar es algo asi como una lightbox con position fixed centrada en la pantalla, entonces si estorba con visibility:hidden; y que ocurre si el usuario desea seleccionar texto o oprimir algun enlace etc bajo la caja.....
__________________
I LOVE HTML (How To Make Love)
  #4 (permalink)  
Antiguo 24/12/2010, 09:22
Avatar de MaBoRaK  
Fecha de Ingreso: abril-2003
Ubicación: La Paz - Bolivia
Mensajes: 2.003
Antigüedad: 21 años
Puntos: 35
Respuesta: style.display en efecto fade

loading............


Es un proceso simple:

1.- dejas el elemento display:none
2.- dejas el elemento con opacity 0
3.- dejas el elemento display:block
4.- vas incrementando la opacidad. 0.01. 0.1 0.2 .... hasta 1.

Y listo.


connection closed.
__________________

Maborak Technologies

Etiquetas: efecto, fade
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 18:31.