setInterval loop

philishake

javascript enthusiast
Hey Leute,

ich habe aus Testzwecken mal einen kleine fadeIn() Funktion geschrieben. Leider hat diese Funktion nur eine Macke. Sie verfängt sich einer endlosen Schleife, sobald der _opacity Wert 0.7 ist. Hat irgendeiner eine Idee, woran das liegen könnte?

Code:
var _opacity = 0;
var myInterval = null;
var title = document.getElementById('title');

function fade() {
    title.style.opacity = _opacity;

    _opacity = _opacity + 0.1;
    _opacity = Math.floor(_opacity * 10) / 10;

    console.log(_opacity);

    if(_opacity > 1) {
        clearInterval(myInterval);
        console.log('done');
    } 
}

myInterval = setInterval('fade()', 1000);

Danke schon mal für's Lesen!

philishake
 
Scheint ein generelles Problem mit float Werten zu sein. Ich habe das Problem wie folgt gelöst:

Code:
var _opacity = 0;
var myInterval = null;
var title = document.getElementById('title');

function fade() {    
    var op = _opacity    

    op = _opacity * 0.1;
    op = Math.floor(op * 10) / 10;
    
    title.style.opacity = op;

    _opacity = _opacity + 1; 

    console.log(op);        

    if(op == 1) {
        clearInterval(myInterval);
        console.log('done');
    } 
}

myInterval = setInterval('fade()', 1000);

Viel spaß noch :)
 
Zurück