Ver Mensaje Individual
  #2 (permalink)  
Antiguo 31/08/2012, 17:17
lubtufano
 
Fecha de Ingreso: julio-2011
Mensajes: 220
Antigüedad: 13 años, 7 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>