试着为每个jQuery计时()

时间:2012-04-26 18:17:00

标签: jquery each

我正在尝试计算一个简单的jQuery动画,以便它在一组HTML元素上逐个触发,并在继续下一组元素之前延迟。使用jQuery each()还没有让我走得太远,因为每个()都会立即运行“item”变量。有没有办法计算时间,以便在继续下一个“项目”变量之前延迟?

$(document).ready(function() {
    var slideShow = $(".intro-inner");
        if (slideShow) {
        var item = slideShow.find(".item");
        var headLine = item.find("h1");
        var para = item.find("p");
        item.each(function () { 
            if (headLine && para) {
                headLine.css({"opacity": "0", "left" : "-1.25em" });
                para.css({"opacity": "0", "left" : "-12.500em" });
                setTimeout(function() {
                    headLine.animate({"opacity": "1", "left" : "0"}, 4000);
                    para.animate({"opacity": "1", "left" : "0"}, 4000);
                }, 1000); 
            }
        });
    }
});

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

setInterval(callYouFunction(), time interval in miliseconds)

答案 1 :(得分:0)

.each()会将the index and the element传递给其回调函数。你也许可以使用它。

例如,将(从零开始)索引乘以您传递给setTimeout的秒数,以便在每个索引前一秒钟为每个动画制作动画:

    item.each(function (i,el) { 
        if (headLine && para) {
            headLine.css({"opacity": "0", "left" : "-1.25em" });
            para.css({"opacity": "0", "left" : "-12.500em" });
            setTimeout(function() {
                headLine.animate({"opacity": "1", "left" : "0"}, 4000);
                para.animate({"opacity": "1", "left" : "0"}, 4000);
            }, i*1000); 
        }
    });