setTimeout在Chrome中运行,但Firefox不适用于淡入淡出动画

时间:2012-02-12 21:56:25

标签: javascript firefox settimeout

编辑:这似乎是一个Firefox故障。重新启动浏览器修复了它。

我编写了一个应该淡入或淡出元素的函数,或者根据输入交叉淡化两个元素。参数是元素,淡入淡出类型和可选的第二个元素。以下代码在Chrome中完美运行,但不适用于Firefox:

var timeElapsed=0;
var opacity;
var opacity2=1;
function fade(element,type,element2)
{
    if(timeElapsed==0)
        type=='out' ? opacity=1 : opacity=0;
    if(type=='in') opacity+=.01;
    else if(type=='out') opacity-=.01;
    else { opacity+=.01; opacity2-=.01; }
    element.style.opacity=parseFloat((opacity+'').substr(0,4));
    if(element2) element2.style.opacity=parseFloat((opacity2+'').substr(0,4));
    timeElapsed++;
    timeElapsed==100 ? timeElapsed=0 : setTimeout(function(){ fade(element,type,element2) },1);
}

这是函数调用:

fade(document.getElementById('someElement'),'out');

这似乎是setTimeout的问题,因为在Firefox中该函数将执行一次,然后停止。有什么想法吗?

0 个答案:

没有答案