Langsames steigen der Opacity

VanHellsehn

Erfahrenes Mitglied
Hi,
Ich habe mal was geschrieben:
Javascript:
  function hover(id){
   
   if (document.getElementById(id).style.opacity == '0.5') {
       
      for(var opaci = 6;opaci < 10; opaci++){
          
          var test = "0.";
          test += opaci;
          
        id = setInterval(blubb(test,id), 10);  
        document.getElementById(id).innerHtml = test;
       }
       document.getElementById(id).style.opacity='1.0';
   } else{
      
      document.getElementById(id).style.opacity='0.5';
      
   }
   
  }
  function blubb(op, id2){
   
   document.getElementById(id2).style.opacity=op;
   //alert(op);
   
  }


Nur lieder klappt dieses Script nicht ^^
Sieht einer einen Fehler ?=
 
Zuletzt bearbeitet von einem Moderator:
Ja, etwa zweile 1 - 26... =) Sry, aber da ist sehr viel falsch... beispiel:

id = setInterval(blubb(test,id), 10);

Das tut alles, nur nicht das, was du möchtest. Erstmal wird blubb sofort ausgeführt, dann wird id überschrieben...

Code:
  function FadeIn( id ) {
    var iv = null;
    var obj = document.getElementById( id );
    
    function fade() {
        var current = parseFloat( obj.style.opacity );
        if( current != 0.5 ) {
            obj.style.opacity = 0.5;
            stop();
        } else {
            current += 0.1;
            if( current > 1 ) {
                current = 1;
                stop();
            }
            obj.style.opacity = current;
        }
    }
    
    function stop() {
        window.clearInterval( iv );
    }
    
    iv = window.setInterval( fade, 100 );
}
Nicht getestet, dürfte aber schon eher funktionieren als das da von dir..
Sonnst schau dir mal Prototype/Scriptaculous an... dann reicht ein: $( id ).appear() um es einfaden zu lassen, und $( id ).fade() zum ausblenden...
 
Ja, etwa zweile 1 - 26... =) Sry, aber da ist sehr viel falsch... beispiel:

id = setInterval(blubb(test,id), 10);

Das tut alles, nur nicht das, was du möchtest. Erstmal wird blubb sofort ausgeführt, dann wird id überschrieben...

Code:
  function FadeIn( id ) {
    var iv = null;
    var obj = document.getElementById( id );
    
    function fade() {
        var current = parseFloat( obj.style.opacity );
        if( current != 0.5 ) {
            obj.style.opacity = 0.5;
            stop();
        } else {
            current += 0.1;
            if( current > 1 ) {
                current = 1;
                stop();
            }
            obj.style.opacity = current;
        }
    }
    
    function stop() {
        window.clearInterval( iv );
    }
    
    iv = window.setInterval( fade, 100 );
}
Nicht getestet, dürfte aber schon eher funktionieren als das da von dir..
Sonnst schau dir mal Prototype/Scriptaculous an... dann reicht ein: $( id ).appear() um es einfaden zu lassen, und $( id ).fade() zum ausblenden...
Hi,
Leider klappt das Script nicht..
Ich hab es mal hier hochgeladen:
http://webmasterparadise.net/versuch/fade.html
 
Hi,

hatte OnlyFoo dich nicht darauf hingewisen, dass das Script ungetestet ist, und eher funktionieren dürfte (Konjunktiv II), wie dein von Fehlern gespickter Script-Code, und du dich ansonsten bei Prototype/Scriptaculous umschauen sollst?

Einen Post über dir findest du ein weiteres funktionstüchtiges Script.

mfg Maik
 
Ich möchte ja nur ein halb wegs eigenes Script haben.. das ich dann auch bearbeiten kann und anpassen kann.. wenn ich auf Prototype oder Scriptaculous gehe bekomme ich so dicke Scripts bei den ich nicht mehr durch blicke.. ich bin wie man sieht nicht so der Javascriptexperte.
Also wäre es nett wenn mir einer bei meinem Script helfen könnte..
 
Danke danke danke ^^
Genau sowas habe ich gesucht..
Das verstehe ich und ich kann es frei verweden =)
Danke.. einen schönen Abend noch.
 

Neue Beiträge

Zurück