Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript setTimeout在Chrome中工作,但不在Firefox中用于淡入淡出动画_Javascript_Firefox_Settimeout - Fatal编程技术网

Javascript setTimeout在Chrome中工作,但不在Firefox中用于淡入淡出动画

Javascript setTimeout在Chrome中工作,但不在Firefox中用于淡入淡出动画,javascript,firefox,settimeout,Javascript,Firefox,Settimeout,编辑:这似乎是Firefox的一个小故障。重新启动浏览器将其修复。 我写了一个函数,它应该淡入或淡出一个元素,或者根据输入交叉淡入两个元素。参数包括元素、淡入度类型和可选的第二个元素。以下代码在Chrome中运行良好,但在Firefox中不起作用: var timeElapsed=0; var opacity; var opacity2=1; function fade(element,type,element2) { if(timeElapsed==0) type=='

编辑:这似乎是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中,函数将执行一次,然后停止。有什么想法吗?

你需要设置更长的延迟时间-你不能以每秒1000帧的速度渲染东西。啊。那么为什么它可以在Chrome上运行呢?在我的Firefox(9.0.1)上运行得好吗?你使用的是哪个版本?在这里查看:谢谢,这看起来是一个很棒的工具。我在那里也很管用。我有和你一样的版本。这很奇怪。我会做更多的测试,以确保我没有做一些愚蠢的事情。好吧,我称这是一个随机的Firefox故障。我把所有的东西逐字复制到一个新文件中,现在可以正常工作了