[Javascript] Backgroundfarbe langsam ändern.



  • Hallo,

    ich stehe vor einem Problem und weiß nicht genau wieso es nicht geht.
    Also ich möchte mit background_hover(..) den Hintergrund eines Div Feldes langsam ändern.
    Dabei steht r1,g1,b1 für die ursprüngliche Farbe und r2,g2,b2 für die Farbe die es geben soll

    hover_background(document.getElementById("slot_1"),200,200,200,232,232,232,1);
    
    function hover_background(id,r1,g1,b1,r2,g2,b2,mult)
    {
        //alert("id:"+id+"\nrgb("+r1+","+g1+","+b1+")")
        id.style.backgroundColor = "rgb("+r1+","+g1+","+b1+")";
    
        if(mult==1)
        {
          if(r1<r2) {r1 = r1+1;}
    
          if(g1<g2) {g1 = g1+1;}
    
          if(b1<b2) {b1 = b1+1;}
    
          if(r1<r2 || g1<g2 || b1<b2)  {
              window.setTimeout(hover_background(id,r1,g1,b1,r2,g2,b2,mult),100);
          }
        }
        if(mult==0)
        {
          if(r1>r2) {r1 = r1-1;}
    
          if(g1>g2) {g1 = g1-1;}
    
          if(b1>b2) {b1 = b1-1;}
    
          if(r1>r2 || g1>g2 || b1>b2)  {
              window.setTimeout(hover_background(id,r1,g1,b1,r2,g2,b2,mult),100);
          }
        }
    
    }
    

    Meiner Meinung nach sollte es funktionieren, aber irgendwie geht es nicht. woran liegt das? Ich bin Javascript nicht so ganz fitt und finde den Fehler nicht.
    Ich hoffe jamand kann mir helfen,

    MfG FabiF

    edit:

    wenn man alert() auskommentiert, dann verändert sich die Farbe auch stetig. Aber ohne nicht. Ich verstehe das nicht.



  • Wird die Funktion denn überhaupt aufgerufen, wenn das alert weg ist?

    btw:
    Für so Schickimicki Sachen finde ich scriptaculous noch ganz gut.

    Es gibt noch weitere JS Bibliotheken, die ganz brauchbar sind. (Mal abgesehen von dem ganzen Overhead, den sie bringen.. :p)



  • Sieh dir mal jQuery an. Da gibt's so Zeug schon fertig.


Anmelden zum Antworten