Foros del Web » Programando para Internet » Javascript »

duda con codigo para cambiar imagenes segun la hora

Estas en el tema de duda con codigo para cambiar imagenes segun la hora en el foro de Javascript en Foros del Web. tengo este código para cambiar 4 imagenes en dos intervalos basicamente noche y dia.. Cita: <script language="JavaScript"> function cambioimagen(){ fecha = new Date();hora = fecha.getHours(); ...
  #1 (permalink)  
Antiguo 30/08/2012, 22:34
 
Fecha de Ingreso: agosto-2012
Mensajes: 1
Antigüedad: 11 años, 8 meses
Puntos: 0
Pregunta duda con codigo para cambiar imagenes segun la hora

tengo este código para cambiar 4 imagenes en dos intervalos basicamente noche y dia..


Cita:
<script language="JavaScript">
function cambioimagen(){
fecha = new Date();hora = fecha.getHours();
if(hora>=6 && hora<=18){
document.getElementById("sky").style.backgroundIma ge="url(../images/sky.png)";
document.getElementById("sky2").style.backgroundIm age="url(../images/sky2.png)";
document.getElementById("land").style.backgroundIm age="url(../images/land.png)";
document.getElementById("plane").style.backgroundI mage="url(../images/plane.png)";}
else if(hora>=19 && hora<=5){
document.getElementById("sky").style.backgroundIma ge="url(../images/sky1.png)";
document.getElementById("sky2").style.backgroundIm age="url(../images/sky21.png)";
document.getElementById("land").style.backgroundIm age="url(../images/land1.png)";
document.getElementById("plane").style.backgroundI mage="url(../images/plane1.png)";}}
</script>
pero no me funciona, quisiera que me dijieran que le falta o que debo hacer para que funcione, tambn probe con la opcion
Cita:
<body onload="cambioimagen()">

agradeceria que me ayuden con esto gracias
  #2 (permalink)  
Antiguo 31/08/2012, 17:17
 
Fecha de Ingreso: julio-2011
Mensajes: 220
Antigüedad: 12 años, 9 meses
Puntos: 72
Respuesta: duda con codigo para cambiar imagenes segun la hora

En efecto es indispensable llamar a la función con el evento onload de body.
<body onload="cambioimagen()">

Los espacios en blanco que aparecen en el código (backgroundIma ge) imagino que se produjeron al copiar y pegar. Ahora, el error fundamental es de lógica y se encuentra en uno de los if. Veamos, en el primer if se define una condición utilizando el operador lógico && con esta condición se determina un rango numérico que va de 6 a 18, en caso de que la variable hora almacene un valor que este dentro de este rango la condición se cumple y se ejecuta el bloque de código correspondiente, eso es correcto. En el caso del otro if se pretende hacer algo similar sólo que determinando un rango númerico distinto que sería el de las horas faltantes, pero si se observa bien la condición se verá que en relidad el rango que determina esta no puede existir, ya que se están solicitando los números que sean mayores o iguales a 19 y que al mismo tiempo sean menores o iguales a 5 lo cual es una contradicción porque si un número es igual o mayor que 19 es imposible que sea igual o menor que 5 y viceversa. Entonces lo que se debe corregir es el segundo if, pero analizando bien el asunto se puede concluir que este segundo if es innecesario ya que el primero define el rango de las horas de día de manera correcta por lo tanto el otro rango que se necesita, el de las horas de noche, queda incluido dentro de todos los números que no entran en el primer rango, es decir todos aquellos que son menores que 6 (5,4,3,2,1,0 ...) y todos aquellos que son mayores que 18 (19, 20, 21, 22, 23 ...), por lo tanto sólo se necesita la sentencia else.

Código Javascript:
Ver original
  1. <script language="JavaScript">
  2. function cambioimagen(){
  3. fecha = new Date();hora = fecha.getHours();
  4. if(hora>=6 && hora<=18){
  5. document.getElementById("sky").style.backgroundImage="url(../images/sky.png)";
  6. document.getElementById("sky2").style.backgroundImage="url(../images/sky2.png)";
  7. document.getElementById("land").style.backgroundImage="url(../images/land.png)";
  8. document.getElementById("plane").style.backgroundImage="url(../images/plane.png)";}
  9. else{
  10. document.getElementById("sky").style.backgroundImage="url(../images/sky1.png)";
  11. document.getElementById("sky2").style.backgroundImage="url(../images/sky21.png)";
  12. document.getElementById("land").style.backgroundImage="url(../images/land1.png)";
  13. document.getElementById("plane").style.backgroundImage="url(../images/plane1.png)";}}
  14. </script>

Etiquetas: funcion, imagenes
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 22:41.