kleiner hobbit: Fade funktion

Hallo,

ich habe diesen CSS Code:

.elyazi{position:absolute;}  
.elyazi span{position:absolute; visibility:hidden; margin:-60px 0px 0px -550px;}  
.elyazi:hover span{position:absolute; visibility:visible; top:0px; right:250px;}

diesen JavaScript Code:

/* <![CDATA[ */  
    function fade(tra)  
	{  
        tra = tra || 0;  
        document.getElementById('yazi').style.opacity = tra/100;  
        document.getElementById('yazi').style.filter = "alpha(opacity=" + tra + ")"; // IE  
        tra = tra + 1;  
        if (tra <= 100)  
		{  
        window.setTimeout(function () { fade(tra); }, 30);  
        }  
    }  
/* ]]> */

und diesen HTML Code:

<a class="elyazi" href="#a"><img src="yazi.jpg" border="0" onmouseover="fade()" alt="" /><span><img id="yazi" src="yazibuyuk.jpg" border="0" alt="" /></span></a>

In FF ist das so, wie ich es haben will. Also egal wie hofft man mit der Maus rüber geht, wird das Bild eingeblendet.

Leider ist es in IE7 so, dass es nur einmal beim ladender Seite geht, wenn man mit der Maus rüber geht. Woran liegt es? Wie sieht es in IE6 aus. Habe leider nur IE7.

Vielen Dank und liebe grüße
kleiner hobbit

  1. @@kleiner hobbit:

    Bleib bitte in deinem Thread!

    Live long and prosper,
    Gunnar

    --
    Das einzige Mittel, den Irrtum zu vermeiden, ist die Unwissenheit. (Jean-Jacques Rousseau)
    1. Hallo Gunnar,

      das ist kein doppeltes Posting. Im vorherigen Thread ging es um die Transparenz, jetzt aber nicht mehr.

      Jetzt geht es um die "funktionalität" in IE uund FF.

      Viele Grüße
      kleiner hobbit

  2. Hallo,

      
    <cut>  
             window.setTimeout(function () { fade(tra); }, 30);  
    <cut>  
    
    

    Mal zum Verständnis für mich: Was bewirkt o.a. code?

    Gruß
    cross

    1. Hi,

      window.setTimeout(function () { fade(tra); }, 30);

      Mal zum Verständnis für mich: Was bewirkt o.a. code?

      er registriert den Wunsch, 30ms später eine anonyme Funktion aufzurufen, die ihrerseits nichts weiter tut, als fade(tra) aufzurufen. Auf diese Weise wird jedoch der Wert von tra "konserviert", der zum Zeitpunkt des Aufrufs von setTimeout() gültig war.

      So long,
       Martin

      --
      Arzt:    Gegen Ihr Übergewicht hilft wohl nur noch Gymnastik.
      Patient: Sie meinen, Kniebeugen und so?
      Arzt:    Nein, Kopfschütteln. Immer dann, wenn Ihnen jemand was zu essen anbietet.
      1. hallo martin,

        vielen dank erstmal für deinen hinweis. aber das verstehe ich nicht so ganz.
        in ie6 klappt es, habe ich mitgeteilt bekommen und in ff auch.

        soll ich statt settimeout was anderes verwenden?

        viele grüße
        kleiner hobbit

      2. Hallo Martin,

        er registriert den Wunsch, 30ms später eine anonyme Funktion aufzurufen, die ihrerseits nichts weiter tut, als fade(tra) aufzurufen. Auf diese Weise wird jedoch der Wert von tra "konserviert", der zum Zeitpunkt des Aufrufs von setTimeout() gültig war.

        Verwirrt hatte mich in der Tat "function (){ ...usw...}"

        Danke für die Erklärung. Ich wusste bis gerade nicht, dass es anonyme Funktionen gibt und welchen Zweck sie haben. Nachdem ich ein bisschen gegoogelt habe weiß ich jetzt mehr.

        Gruß
        cross

        1. @@cross:

          Ich wusste bis gerade nicht, dass es anonyme Funktionen gibt und welchen Zweck sie haben.

          Da sei dir molilys Artikel Organisation von JavaScripten empfohlen.

          Live long and prosper,
          Gunnar

          --
          Das einzige Mittel, den Irrtum zu vermeiden, ist die Unwissenheit. (Jean-Jacques Rousseau)
          1. Da sei dir molilys Artikel Organisation von JavaScripten empfohlen.

            Danke für den Hinweis. Schaue ich mir gerne an.

            Gruß
            cross

            1. hallo,

              ich habe es immernoch nicht richtig verstanden, was an mein code da falsch ist und das mit der komischen funktion auch nicht die aufgerufen wird?

              kann einer mir das bitte erklären? der eine link hat mir ja da nicht weitergeholfen, habe es mir gerade angeguckt.

              wäre euch dankbar, wenn ihr mir helfen könntet...

              viele grüße
              kleiner hobbit

      3. hallo Martin,

        er registriert den Wunsch, 30ms später eine anonyme Funktion aufzurufen, die ihrerseits nichts weiter tut, als fade(tra) aufzurufen. Auf diese Weise wird jedoch der Wert von tra "konserviert", der zum Zeitpunkt des Aufrufs von setTimeout() gültig war.

        ich verstehe nicht was du mit einer anonyme funktion meinst. in mein skript gibt es keine weitere funktion.

        in ie6 und ff funktioniert es ja so wie ich es haben will. was das mit der anonymen funktion auf sich hat verstehe ich nicht.

        könntest du mir helfen, auf die sprünge zu kommen?

        vielen dank
        kleiner hobbit

        1. Hi,

          ich verstehe nicht was du mit einer anonyme funktion meinst.

          Dann solltest du den Artikel, den Gunnar Cross als Lektüre an Herz gelegt hat, auch mal aufmerksam durcharbeiten.

          MfG ChrisB

          --
          „This is the author's opinion, not necessarily that of Starbucks.“