我正在使用另一个Stack Overflow帖子中的this answer,使用fadeIn
方法逐个淡入多个元素,并使用fadeOut
反向淡出。例如,使用fadeIn
:
$("#container").children().each(function(index) {
$(this).delay(400 * index).fadeIn(300);
});
由于我将多次使用代码并使用不同的动画,我将它放入一个函数中,其中迭代的jQuery对象,延迟和要执行的动画作为参数传递:
function animateOneByOne(elements, delay, animation) {
elements.each(function(index) {
$(this).delay(delay*index).animation();
});
}
使用类似的东西调用:
animateOneByOne($("#introelements").children(), 400, function() { fadeIn(300); });
我现在意识到这不起作用,因为animation
对象中没有$(...).delay(...)
函数。
将这段代码放入函数中是否有一种很好的方法?
答案 0 :(得分:0)
在写这个问题的过程中,我发现了一个简单的解决方案,其中我将作为参数传递的函数更改为将单个元素作为参数:
function animateOneByOne(elements, delay, animation) {
elements.each(function(index) {
animation($(this).delay(delay * index));
});
}
使用类似的东西调用:
animateOneByOne($("#introelements").children(), 400, function(element) { element.fadeIn(300); });
(我发布了这个,以防其他人遇到类似的问题以及有更好的解决方案。)