我正在尝试计算一个简单的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);
}
});
}
});
非常感谢任何帮助。
答案 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);
}
});