Josie: wechselnde bildquelle je nach uhrzeit

Hallo meine lieben,

ich würde gerne auf meiner website eine kleine grafik haben die sich je nach uhrzeit verändert nur komm ich da gerade irgendwie nicht weiter, weil es immer das selbe bild (das startbild) anzeigt
könnt ihr mir vielleicht sagen wo mein fehler liegt:

  
<script type="text/javascript">  
var jetzt = new Date();  
var Std = jetzt.getHours();  
if (Std >= 5 && Std < 12) {  
  document.getElementById('bild').src = 'images/sunrise.png';  
} else if (Std >= 12 && Std < 18) {  
  document.getElementById('bild').src = 'images/day.png';  
} else if (Std >= 18 && Std <= 23) {  
  document.getElementById('bild').src = 'images/sunrise.png';  
} else if (Std >= 0 && Std < 5) {  
  document.getElementById('bild').src = 'images/night.png';  
}  
  
</script>  
  
  
  
</head>  
<body>  
  
  
  
  
<div id="dnn">  
  
<div id="bild">  
<img src="images/day.png" width="100%" height="210px" id="bild">  
  
</div>  
</div>  

  1. Hallo,

    ohne mir deinen Code im Detail anzugucken, fällt mir auf, dass du "bild" zweimal als id vergibst. Ansonsten einfach mal in die Fehlerkonsole deines Browsers gucken.

      
    <div id="bild">  
    <img src="images/day.png" width="100%" height="210px" id="bild">  
    </div>  
    
    

    Viele Grüße Novi

    --
    "(...) deshalb mag ich Binärtechnik. Da gibt es nur drei Zustände: High, Low und Kaputt." (Wau Holland)
    1. Vielen lieben dank ihr Lieben,

      habe jetzt die Lösung gefunden
      (hach wenns euch nich gäb.... dann hät ich vermutlich andere  )

      Hier die Lösung:

        
        
      <script type="text/javascript">  
      function BildNachZeit() {  
        var datum = new Date();  
        var zeit = datum.getHours();  
        if (5 <= zeit && zeit < 12 ) {  
             document.getElementById("Bild").src = "images/sunrise.png";  
             return;  
        }  
        else if (12 <= zeit && zeit < 18 ) {  
             document.getElementById("Bild").src = "images/day.png";  
             return;  
        }  
        else if (18 <= zeit && zeit < 23 ) {  
             document.getElementById("Bild").src = "images/sunrise.png";  
             return;  
        }  
        else if (23 <= zeit && zeit < 5 ) {  
             document.getElementById("Bild").src = "images/night.png";  
             return;  
        }  
      }  
      </script>  
        
      </head>  
      <body onload="javascript:BildNachZeit()">  
        
        
        
        
      <div id="dnn">  
        
      <img id="Bild" src="images/day.png" width="100%" height="210px" border="0">  
        
        
      </div>  
        
      
      
  2. Ich kenne mich jetzt nicht so extrem gut mit JS, allerdings fällt mir auf, dass die aktuelle Stunde bei dir nur ein einziges mal instanziert wird, nämlich genau dann wenn dein Script geladen wird. Das heißt der Inhalt deiner Variablen Std dürfte genau die Stunde sein, als dein Script geladen wurde. Du musst denke ich noch eine Überprüfung alle X min einbauen welche Uhrzeit es gerade nach dem Seitenaufruf ist.

  3. Hi,

    document.getElementById('bild').src = 'images/sunrise.png';

    hier versuchst Du, ein Element zu verändern,
    das erst Stunden später existieren wird:

    <div id="bild">

    src vom div zu ändern, wird allerdings auch dann nicht viel helfen, wenn es erst dann geschieht, wenn das div existiert.

    <img src="images/day.png" width="100%" height="210px" id="bild">

    Noch ein Element mit derselben id? Das geht ja gar nicht.

    cu,
    Andreas

    --
    Warum nennt sich Andreas hier MudGuard?
    O o ostern ...
    Fachfragen per Mail sind frech, werden ignoriert. Das Forum existiert.