conym18: img background

hallo,

ich habe ein bild in meinem HTML eingebunden:

<img src="bild.png" border="1" alt="" onLoad="this.src = 'warte.gif'">

Jetzt die Frage.
Das "bild.png" ist sehr groß.
wie bekomme ich es nun hin, dass wenn das bild geladen wird, erst warte.gif angezeigt wird, dass der Benutzer bescheid weiß, dass das bild geladen wird?

  1. Hallo,

    Jetzt die Frage.
    Das "bild.png" ist sehr groß.
    wie bekomme ich es nun hin, dass wenn das bild geladen wird, erst warte.gif angezeigt wird, dass der Benutzer bescheid weiß, dass das bild geladen wird?

    Indem du mit JS erst das warten.gif anzeigst, danach überprüfst, ob das bildgeladen hat und den rest mit style.visibility rehgelst...

    MfG. Christoph

    --
    Wo die Sprache aufhört, fängt die Musik an...
    Selfcode:  ie:( fl:| br:^ va:| ls:/ fo:| rl:? n4:) ss:) de:] js:) ch:{ sh:) mo:) zu:)
    Go to this or Go to this
    1. Hallo,

      Jetzt die Frage.
      Das "bild.png" ist sehr groß.
      wie bekomme ich es nun hin, dass wenn das bild geladen wird, erst warte.gif angezeigt wird, dass der Benutzer bescheid weiß, dass das bild geladen wird?

      Indem du mit JS erst das warten.gif anzeigst, danach überprüfst, ob das bildgeladen hat und den rest mit style.visibility rehgelst...

      MfG. Christoph

      und wie geht das?

      1. Hallo,

        <script type="text/javascript">
        function warten()
         {
          if(document.images[].complete==true)
            {
              document.images["Bild"].style.visibility="visible";
              document.images["Warten"].style.visibility="hidden";
            }
          else {
              window.setTimeout("warten()", 1000);
            }
         }
        </script>

        [...]

        <body onload="warten()">
        <img src="DeinGrossesBild.png" style="visibility:hidden;" name="Bild">

        <!--Das Div musst du anpassen-->
        <div style="...">
        <img src="warten.gif" width="..." height="..." name="Warten">
        </div>

        Also: Aller 1000 Millisekunden(1 sekunde) wird überprüft ob das bild geladen ist (...==true)
        falls ja, wird der ständige funktionsaufruf beendet...
        (ich hab das jetzt nur so geschrieben, ich weiß nicht, ob das funktioniert)

        MfG. Christoph

        --
        Wo die Sprache aufhört, fängt die Musik an...
        Selfcode:  ie:( fl:| br:^ va:| ls:/ fo:| rl:? n4:) ss:) de:] js:) ch:{ sh:) mo:) zu:)
        Go to this or Go to this
        1. das fkt. nicht.

          als IE fehlermeldung:

          Objekt erwartet

          1. Hallo,

            Objekt erwartet

            oh ... stimmt :

            du musst oben in der if-anweiung noch den namen des zu ladenen bildes eintragen:

            if(document.images["Bild"].complete==true)...

            MfG. Christoph

            --
            Wo die Sprache aufhört, fängt die Musik an...
            Selfcode:  ie:( fl:| br:^ va:| ls:/ fo:| rl:? n4:) ss:) de:] js:) ch:{ sh:) mo:) zu:)
            Go to this or Go to this
            1. supi genial, klappt.

              vielen dank für deine Hilfe

              Nun habe ich noch eine Frage:

              ich habe mehrere bilder mit unterschiedlichen name="".

              also:

              name="Bild1"
              name="Bild2"
              name="Bild3"

              angenommen, ich rufe die warten() fkt. anders auf, wie übergebe ich dann aber das "BILD" an die fkt.?

              hab schon probiert, aber klappt nicht :(

              hast da eine lösung?

              1. Hallo,

                hast da eine lösung?

                ich denk schon ...

                funkion Blablabla() //Das ist deine Funktion
                  {
                    [...] //irgendwelche Befehle

                NameDesBildes=... <--hier kommt der Name des Bildes hin
                    Warten(NameDesBildes);
                  }

                reicht das ?

                MfG. Christoph

                --
                Wo die Sprache aufhört, fängt die Musik an...
                Selfcode:  ie:( fl:| br:^ va:| ls:/ fo:| rl:? n4:) ss:) de:] js:) ch:{ sh:) mo:) zu:)
                Go to this or Go to this
    2. Indem du mit JS erst das warten.gif anzeigst, danach überprüfst, ob das bildgeladen hat und den rest mit style.visibility rehgelst...

      Wenn ich ein Browser wäre, würde ich ein Bild welches nicht angezeigt werden soll auch nicht laden... gibt es hierfür eine Regel, die dir garantiert, dass ein unsichtbares Bild überhaupt geladen wird?

      Ich denke was hier ursprünglich gemeint war ist, dem <img /> Tag via CSS ein Hintergrund-bild, nämlich das warten.gif zu spendieren, was dann automatisch vom ladenden Bild überdeckt wird.