2013-06-02 48 views
0

我目前正在建设测试网站的中间,以帮助我更好地理解编码并尝试更好地掌握它们是如何结合在一起的。将setTimeout交换到setinterval,任何人都可以帮我解决这个问题

我的问题是这样的 - 我有一段引用的网站,他们淡入,然后向上滑出视图显露一个新的报价。 这是我犯的错误。我已经完全设置好了,这样它可以在所有引号中循环...但是然后停下来。我会爱他们重复。我知道我的错误是使用.setTimeout函数,而不是setInterval代码。

我的问题是这样的,有一个简单的解决方案,以交换代码,它是我花了好一会儿来包装我的头解决这个笑

下面是代码给你看。任何帮助将不胜感激。

$(function(){ 
setTimeout(function() 
    { 
    $("#jobs_1").slideUp(800); 
    }, 4000); 
}); 
$(function(){ 
setTimeout(function() 
    { 
    $("#jobs_2").fadeIn(400); 
    }, 4800); 
}); 
$(function(){ 
setTimeout(function() 
    { 
    $("#jobs_2").slideUp(800); 
    }, 8000); 
}); 
$(function(){ 
setTimeout(function() 
    { 
    $("#jobs_3").fadeIn(400); 
    }, 8800); 
});  
$(function(){ 
setTimeout(function() 
    { 
    $("#jobs_3").slideUp(800); 
    }, 12000); 
}); 
$(function(){ 
setTimeout(function() 
    { 
    $("#jobs_4").fadeIn(400); 
    }, 12800); 
}); 
$(function(){ 
setTimeout(function() 
    { 
    $("#jobs_4").slideUp(800); 
    }, 16000); 
}); 
$(function(){ 
setTimeout(function() 
    { 
    $("#jobs_1").fadeIn(400); 
    }, 16800); 


});  

非常感谢

+0

究竟什么是你的问题?如何以最快的速度替换所有出现的'setTimeout'? –

+0

问题是我想我的报价重复,但因为即时通讯使用setTimeout他们停止在最后,我怎样才能settimeout换setinterval并让它工作。对不起,如果我没有描述它完美即时通讯仍然在学习我自己 – user2445082

回答

0

您可以将所有的块名进入堆栈,并使用一个单一的功能:

var blocks = ['jobs_1', 'jobs_2', 'jobs_3', 'jobs_4']; 
var curentBlockIndex = 0; 
setInterval(function(){ 
    var nextBlockIndex = curentBlockIndex + 1; 
    if (nextBlockIndex >= blocks.length) nextBlockIndex = 0; 
    $('#' + blocks[curentBlockIndex]).slideUp(800, function(){ 
     $('#' + blocks[nextBlockIndex]).fadeIn(400); 
    }); 

    curentBlockIndex = nextBlockIndex; 
}, 4000); 
+0

This Works Perfectly !!!谢谢。 – user2445082

+0

欢迎您:) – claustrofob

0

这会帮助你。怎么运行的? 您将当前的作业计数器设置为0.然后,使用setInterval,每3秒钟运行一次主函数,这会增加作业计数器。如果计数器超过4(你的上一份工作),隐藏工作4并淡入第一个。否则滑出以前的工作并淡入新的工作。

$(function(){ 
    count = 1; 

    x = setInterval(function(){ 
     count++; 
     if(count > 4) { 
      $('jobs_4').hide(function(){ 
       $('#jobs_1').fadeIn(); 
      }); 

      count = 1 
     } else { 
      $('#jobs_' + (count-1)).slideUp(function(){ 
       $('#jobs_' + (count-1)).fadeIn(); 
      }); 
     } 

    }, 3000); 
} 
+0

我想我明白了,对不起,我是一个完整的假人,所有这一切,我仍然试图把我的头围绕着这一切。我会测试这一点,我会公布结果。谢谢! – user2445082

相关问题