无法让setTimeout工作

时间:2013-12-04 07:58:15

标签: javascript jquery css

我正在为webkit开发一个简单的css动画。许多元素将会滑入然后展开。

我的想法是继续使用单个css动画并通过添加带有jquery的slideIn类来触发它。

.slideIn {
    -webkit-animation-duration: 1s;
    -webkit-animation-timing-function: ease-in-out;
    -webkit-animation-iteration-count: 1;
    -webkit-animation-fill-mode: forwards;
    -webkit-animation-name: slideIn;
    clip: rect(0,125px,315px,0);
    }
@-webkit-keyframes slideIn {
    0% { -webkit-transform: translateX(0); }
    50% { -webkit-transform: translateX(-700px); clip: rect(0,125px,315px,0); }
    100% { -webkit-transform: translateX(-700px); clip: rect(0,550px,315px,0); }
}

正如我所提到的,页面上有多个项目,我希望它们一个接一个地滑动。所以我需要逐个添加slideIn类,像somtehing一样:

var pref = "animated";
var animClass = "slideIn";
var eNumber = 5;
var interval = 10000;
animateMultiple(pref, eNumber, interval, animClass);

function animateMultiple(pref, eNumber, interval, animClass) {
    var i = 0;
    function addAnimClass() {
        i++;
        $('#' + pref + i).addClass(animClass);

        if(i < eNumber){
            setTimeout(addAnimClass(), interval);   
        }
    }
    addAnimClass ();
}

然而,这完全是所有元素共同滑动的结果。

为什么间隔没有任何影响?

1 个答案:

答案 0 :(得分:4)

setTimeout(addAnimClass(), interval);

您(立即)致电 addAnimClass并将其返回值(undefined)传递给setTimeout

删除()