Foros del Web » Programando para Internet » Javascript »

Efecto fade con setInterval

Estas en el tema de Efecto fade con setInterval en el foro de Javascript en Foros del Web. Es una simple funcion para un efecto tipo "fade" en un div. Si opacity es igual a 10, esta deve disminuir de .1 en .1 ...
  #1 (permalink)  
Antiguo 17/12/2010, 17:15
Avatar de Tecktonikrazy  
Fecha de Ingreso: enero-2010
Mensajes: 224
Antigüedad: 14 años, 10 meses
Puntos: 3
Pregunta Efecto fade con setInterval

Es una simple funcion para un efecto tipo "fade" en un div. Si
opacity es igual a 10, esta deve disminuir de .1 en .1 cada 100 milisegundos, y si es igual a 0, deve aumentar. he visto otras funciones para hacer este efecto pero yo quiero el codigo lo mas simple que se pueda, sin usar bibliotecas, y no entiendo porque no funciona esto.

Código HTML:
<div id="box" style="opacity:10;width:100px;height:100px;background:#FF0000;"></div>

<input type="button" value="Fade" onclick="fade('box');"/> 
Código Javascript:
Ver original
  1. function fade(id){
  2.  
  3. var element = document.getElementById(id);
  4.  
  5. if(element.style.opacity == 10){
  6. setInterval("element.style.opacity -= .1",100);
  7. } else if(element.style.opacity == 0){
  8. setInterval("element.style.opacity += .1",100);
  9. }
  10. }
__________________
I LOVE HTML (How To Make Love)
  #2 (permalink)  
Antiguo 17/12/2010, 17:41
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 7 meses
Puntos: 1284
Respuesta: Efecto fade con setInterval

Hola:

Tal vez si element lo definieras fuera de la función...

Bueno, setInterval se ejecuta sin parar... en estos casos es más recomendable setTimeout, o cortar el bucle con clearInterval.

Te paso un código que quizá te sirva: Pseudo-lightbox... fíjate en la parte de transiciones...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo

Etiquetas: efecto, fade, setinterval
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 17:28.