s n u f k i n: "zufälliger" bilderwechsel

hallo!

nun ist es soweit, ich hab meinen ersten javascript zusammengebracht!
nix besonderes, je nach aufrufsekunde der seite soll im 10 sekundentakt ein anderes bild zu sehen sein und das in einem layer.

so weit so gut, funktioniert unter IE ohne probleme, aber unter netscape ist kein bild zu sehen!? (ohne lyer gehts auch im netscape, also macht wohl der layer probleme)

und wenn ich die bilder unter /images/ abspeichern will, warum funktionert es dann nicht wenn ich schreibe:

{document.write("<img src="\images\bild1.jpg">");}

<div id="Fenster1" style="position:absolute; left:52px; top:293px; width:171px; height:190px; z-index:2">

<script language="JavaScript">
<!--
jetzt = new Date();
Sek = jetzt.getSeconds();
if(Sek >=0 && Sek <=9)
{document.write("<img src="bild1.jpg">");}

if(Sek >=10 && Sek <=19)
{document.write("<img src="bild2.jpg">");}

if(Sek >=20 && Sek <=29)
{document.write("<img src="bild3.jpg">");}

if(Sek >=30 && Sek <=39)
{document.write("<img src="bild4.jpg">");}

if(Sek >=40 && Sek <=49)
{document.write("<img src="bild5.jpg">");}

if(Sek >=50 && Sek <=60)
{document.write("<img src="bild6.jpg">");}
//
-->
</script></div>

überrascht hat mich auch, dass man IF auch ohne ELSE
verwenden kann. es gibt sicher auch bessere lösungen...

liebe grüße,
snufkin

  1. hallo snufkin,
    das mit dem layer weiß ich auch nicht sofort,  
    das mit den Verzeichnis-Hierarchie-Trennzeichen muß mit dem "normalen" slash '/' anstelle des
    backslash '' geschrieben werden, also
    {document.write("<img src="images/bild1.jpg">");}
    statt

    {document.write("<img src="\images\bild1.jpg">");}.
                                                  
                                                  / \                                                ?
    oder der backslash muß maskiert werden (wenn Du auf einem Win-Rechner bist):
    {document.write("<img src="images\bild1.jpg">");}
    Einen backslash gibt es ja nur bei MS-DOS, Windows, IE, usw..
    Bei mir (NS 4.73, IE 5.5) geht es so.
    gruß
    soeren

    {document.write("<img src="\images\bild1.jpg">");}

  2. Hallo!

    Bildwechsel hatten wir schon desoefteren hier, in dieser Form ist er mir aber noch nicht unter die Augen gekommen.

    var letztes;
    function bildwechel() {
      var zufallszahl = Math.round(random() * 10);
      if(zufallszahl > 6 zufallszahl == 0 zufallszahl == letztes) { bildwechsel(); }
      letztes = zufallszahl;
      var html = "<img src="bild" + zufallszahl + ".jpg">";
      if(document.layers) {
        document.fenster1.document.open();
        document.fenster1.document.write(html);
        document.fenster1.document.close();
      }
      if(document.all) {
        document.all.fenster1.innerHTML = html;
      }
      window.setTimeout("bildwechsel()", 10000);
    }

    <div id="fenster1" ...></div>

    Schreibt alle zehn Sekunden ein zufaaeaeliges Bild zwischen bild1.jpg und bild6.jpg in den Layer. Es kann nicht zweimal das selbe Bild hintereinader angeziegt werden.

    Thilo

    1. Hallo Thilo!

      danke, hab mir dein script angeschaut und ein bißchen verändert,
      so wie ich es brauch (mit hilfe vom bruder).
      nur habe ich jetzt das problem, dass es in IE super funktioniert,
      aber in netscape 4.0 passiert garnix, nur eine weiße seite.
      woran kann das liegen?

      viele grüße,
      snufkin

      hier das leicht veränderte script:
      (javascript sollte man wohl immer zuerst laden, oder?
      also das "<div id....>" gehört wohl ganz zum schluß...)

      <div id="fenster1" style="position:absolute; left:336px; top:130px; width:404px; height:124px"></div>

      </body>

      <script language="JavaScript">

      <!--
      {
      var letztes;
         function Bildwechsel ()
      {

      zufallszahl = Math.round(Math.random()*10);
      if(zufallszahl > 6 zufallszahl == 0 zufallszahl == letztes)
            { Bildwechsel(); }

      letztes = zufallszahl;
        var html = "<img src="bild"+ zufallszahl + ".jpg">";
        if(document.layers)
        {
        document.fenster1.document.open();
        document.fenster1.document.write(html);
        document.fenster1.document.close();
        }
        if(document.all)
        {
        document.all.fenster1.innerHTML = html;   // innerHTML
        document.all.fenster1.visibility = "show";
        }

      // window.setTimeout("Bildwechsel()", 10000); //Anm.: brauch ich nicht
      }
      Bildwechsel();
      }

      //
      -->
      </script>

  3. Hallo snufkin,

    eigentlich kannste Dir die Lösung von Krisztián Frage übernehmen
    (<102047.html>).

    Das Grundprinzip ist das selbe:

    o Array mit den Bildern anlegen
    o DIV für die Anzeige der Bilder einrichten
    o Inhalte austauschen lassen

    Die Sekundenabfrage ist äusserst ungenau und dürfte auf langsamen
    Rechnern oder langsamen Verbindungen nur für Frust beim User sorgen.

    <img src="http://home.germany.net/100-80215/alex/images/promo/signet.gif" alt="">

    <img src="http://home.germany.net/100-80215/alex/images/promo/akonline.gif" alt="">

    http://www.atomic-eggs.com/selfspezial/daten/101.html