Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/384.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.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 Jquery函数创建异常暂停_Javascript_Jquery - Fatal编程技术网

Javascript Jquery函数创建异常暂停

Javascript Jquery函数创建异常暂停,javascript,jquery,Javascript,Jquery,编辑:创建一个显示问题的小提琴 下面的代码在每次淡入淡出之间创建一个7秒的暂停,直到代码自身重新运行结束。由于某些原因,此延迟变为14/15秒 我做了很多搜索,但都找到了特朗普,所以非常感谢您的帮助 var imgshow = function(){ $(".img1").delay(7000).fadeOut(1500, function(){ $(".img2").delay(7000).fadeOut(1500, function(){

编辑:创建一个显示问题的小提琴

下面的代码在每次淡入淡出之间创建一个7秒的暂停,直到代码自身重新运行结束。由于某些原因,此延迟变为14/15秒

我做了很多搜索,但都找到了特朗普,所以非常感谢您的帮助

    var imgshow = function(){
    $(".img1").delay(7000).fadeOut(1500, function(){
        $(".img2").delay(7000).fadeOut(1500, function(){
            $(".img1").delay(7000).fadeIn(1500, function(){
                $(".img2").delay(7000).fadeIn(1500, function(){
                    imgshow();
                });
            });
        });
    });
}
imgshow();

它实际上是按照编码的方式工作的(但可能不是您想要的:-)。发生的情况是,第二个
fadeIn
没有(视觉上)效果,因为img2在img1之下(完全不透明),导致img1停留的时间是img1的两倍

希望下面的内容可以清楚地说明-1表示完全不透明,0表示完全透明

  • img2(1)下的img3(1)在img1(1)下=>所示的img1
  • img2(1)下的img3(1)下的img1(0)=>所示的img2
  • img2(0)下的img3(1)在img1(0)下=>所示的img3
  • img2(0)下的img3(1)下的img1(1)=>所示的img1
  • img2(1)下的img3(1)img1(1)下=>img1显示(当您可能需要img2时)
如果您交换最后2个
fadeIn
,您将得到每间隔()都会改变颜色的东西,但顺序将是img1、img2、img3、img2、img1。。。否则,您可以将img2设置为在img1
fadeIn
之后完全可见,然后重新启动循环


在任何情况下,由于您正在执行递归调用,最终将耗尽堆栈空间(由于延迟,速度非常慢),因此重构以使用CSS转换可能是一个好主意。

上述代码似乎没有问题。检查一下(我已经加速了10倍)-右角有几秒钟的通话间隔。嗨,土豆,谢谢你的反馈。在看了你的小提琴之后,我决定看看我是否能重现这个问题,我做到了。你会看到,从第二个循环中,第一个正方形的淡出时间更长。我想我看到了问题所在——看看答案。干杯你是完全正确的,甚至在我读完你的答案之前,我就看到了这个问题。关于您提到的堆栈空间问题,这是任何循环函数的问题吗?或者有没有一种方法我应该这样做?这是任何没有结束的递归函数的问题-但我不知道足够多的信息来确定在这种情况下这将是一个问题(7秒延迟通常是可以的。假设用户不在页面上花费数小时)。无论如何,如果你只是想改变背景,你可以用纯CSS来做-参见