1

我在这个 JSFiddle 中有一个脉冲动画

http://jsfiddle.net/upBdw/8/

当你单独使用它时,它工作得很好。我遇到的问题是,当我开始浏览网页、打开 iTunes 或在该窗口仍然打开时您会做的任何其他事情时,脉冲的时间开始波动。

脉冲的功能是这样的:

function fadeItIn() {

    window.setInterval(function(){

        // Fade Ins
        $('#child4,#child4C').fadeIn(175);
        setTimeout(function () {
            $('#child3,#child3C').fadeIn(175);
        }, 175);
        setTimeout(function () {
            $('#child2,#child2C').fadeIn(175);
        }, 350);
        setTimeout(function () {
            $('#child1,#child1C').fadeIn(175);
        }, 525);
        setTimeout(function () {
            $('#child,#childC').fadeIn(175);
        }, 700);

        // Fade Outs
        setTimeout(function () {
            $('#child,#childC').fadeOut(175);
        }, 875);
        setTimeout(function () {
            $('#child1,#child1C').fadeOut(175);
        }, 1050);
        setTimeout(function () {
            $('#child2,#child2C').fadeOut(175);
        }, 1225);
        setTimeout(function () {
            $('#child3,#child3C').fadeOut(175);
        }, 1400);
        setTimeout(function () {
            $('#child4,#child4C').fadeOut(175);
        }, 1575);  

    }, 3000);   
};

我觉得问题发生在函数内的 3 秒间隔内。我需要重复脉冲,所以我需要它。

大家认为是什么导致了这个问题,我该如何解决?

4

1 回答 1

0

您可以做的一件事是将一组超时设置在另一组内。

现在你有 setTimeout(, time); setTImeout(, 时间*2); setTImeout(, 时间*3);

也许如果您将其更改为: setTimeout(... setTimeout(... setTimeout(...,time), time), time);

所以这将确保执行顺序。第一个将始终执行。

于 2013-08-20T04:12:59.957 回答