Foros del Web » Programando para Internet » Javascript »

Cambiar fondo

Estas en el tema de Cambiar fondo en el foro de Javascript en Foros del Web. Hola, quiero que el fondo de mi web que es una imagen cambie cada cierto tiempo, para ello tengo esta función: Código: <script language="JavaScript" type="text/javascript"> ...
  #1 (permalink)  
Antiguo 11/07/2011, 16:42
 
Fecha de Ingreso: junio-2011
Mensajes: 478
Antigüedad: 12 años, 11 meses
Puntos: 13
Pregunta Cambiar fondo

Hola, quiero que el fondo de mi web que es una imagen cambie cada cierto tiempo, para ello tengo esta función:

Código:
<script language="JavaScript" type="text/javascript"> 
$( function(){
    var bgImages = [ 'fondo3.png', 'fondo2.png', 'fondo.png' ];
    var currImage = 'fondo.png';
    setInterval( function(){
        do{
            var randImage = bgImages[Math.ceil(Math.random()*(bgImages.length-1))];
        }while( randImage == currImage )
        currImage = randImage;
        $('#fondo').BgImageTransition( 'img/'+currImage );
    }, 8000)
})
</script>
No se por que razón, pero solo varia entre dos de los fondos, hay uno de ellos que no aparece nunca, entonces mi idea era en vez de que sea random, recorrer el array y que comience con la primera, luego la segunda, después la tercera y vuelva a comenzar.
Como puedo hacerlo?? O que otra solución me recomiendan?? Muchas gracias
  #2 (permalink)  
Antiguo 11/07/2011, 17:23
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 13 años, 10 meses
Puntos: 310
Respuesta: Cambiar fondo

Usa algo como esto:
Código Javascript:
Ver original
  1. Array.prototype.porOrden = function(){
  2.  this.esNuevo = this.esNuevo == null;
  3.  this.copia = this.esNuevo || !this.copia.length ? this.concat() : this.copia;
  4.  return this.copia.shift();
  5. };
  6. var array = [1, 'abc', true, {}, []], i = 0;
  7.  
  8. while(i++ < 5){ console.log(array.porOrden()); }
Saludos (:
PD: Lo que sucede es que al usar Math.ceil, la única manera de que salga fondo3.png es que Math.random() devuelva 0, algo que es bastante improbable. Usa mejor Math.round.
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red
  #3 (permalink)  
Antiguo 12/07/2011, 18:32
 
Fecha de Ingreso: junio-2011
Mensajes: 478
Antigüedad: 12 años, 11 meses
Puntos: 13
Respuesta: Cambiar fondo

Gracias por contestar!
La verdad es que no puedo.
Alguien mas tiene otra solución?
  #4 (permalink)  
Antiguo 13/07/2011, 04:15
Avatar de ceSharp  
Fecha de Ingreso: octubre-2008
Ubicación: Madrid
Mensajes: 495
Antigüedad: 15 años, 6 meses
Puntos: 66
Respuesta: Cambiar fondo

hola rapuig,
en este sencillin ejemplo tienes una manera de usar un contador de cero a dos, luego vuelve a cero, y vuelta a empezar
-------------------------
<script type="text/javascript">
var contador = 0;
setInterval("muestra()",2000)
function muestra()
{document.getElementById('un_div').innerHTML=cuent a();}
function cuenta()
{if(contador==2)
{contador=0;return contador}
else
{contador +=1;return contador;}
}
</script>
<body>
<div id="un_div">0</div>
</body>
----------------------

saludos

Etiquetas: fondo
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:04.