Janine: setTimeout() ohne Funktion aufrufen

Hallo zusammen,

ich möchte gerne, dass wenn man eine Textbereich verlässt, dieser
blasser wird. Dies sollte nach und nach passieren, nicht auf einmal.
Ich habe es mit setTimeout("",2000); probiert, aber der Browser
scheint es zu ignorieren, d.h. der Text wird gleich blass.
Woran liegt das? Was muß ich ändern?

Vielen Dank
MFG
Janine

<html>
<head>
  <title>Test</title>
  <script type="text/javascript">
  <!--
  function Test() {
    if (document.all){
      for(i = 0; i <= 200; i = i + 20){
        setTimeout("", 2000);
        document.all.Absatz.style.setAttribute("color","rgb("+i+","+i+","+i+")","false");
      }
    }
    else
      document.getElementById("Absatz").style.color = "#444444";
  }

//-->
</script>
</head>
<body>
<p id="Absatz" onMouseout="Test();">Ein Text</p>
</body></html>

  1. Hi,

    der Code nach setTimeout() wird sofort, d.h. so schnell dein Browser kann ausgeführt. Und das was in setTimeout() steht, erst nach der bestimmten Zeit. Deshalb klappts nicht.

    function Test() {
        if (document.all){
          for(i = 0; i <= 200; i = i + 20){
            setTimeout("", 2000);
            document.all.Absatz.style.setAttribute("color","rgb("+i+","+i+","+i+")","false");
          }
        }
        else
          document.getElementById("Absatz").style.color = "#444444";
    }

    Die abfrage nach document.all ist doch auch überflüssig. IE ab 5 kann getElementById doch auch!

    Und da könntest du ja auch den Effekt einbauen.
    Machs so:

    function Test(i)
    {
      document.getElementById("Absatz").style.setAttribute("color","rgb("+i+","+i+","+i+")","false");
      i += 20;
      if(i <= 200)
      setTimeout("Test("+i+")", 2000);
    }

    Test(0);

    Gruß
    Scooter

  2. Hallo Janine,

    setTimeout("", 2000);

    sieh mal hier: http://selfhtml.teamone.de/javascript/objekte/window.htm#set_timeout.

    setTimeout() erwartet als ersten Parameter 'etwas', also z.B. einen Funktionsaufruf, der entsprechend dem zweiten Parameter um x Millisekunden verzoegert ausgefuehrt werden soll - das ist KEINE (Zigaretten-) Pause.

    gruesse
    rainer groth

    --
    ss:| zu:} ls:& fo:) de:] va:| ch:] n4:° rl:? br:$ js:| ie:| fl:( mo:?
    (--> einer der letzten bauhaeusler <--)