Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript for循环中的jQuery.animate()_Javascript_Jquery_For Loop_Jquery Animate - Fatal编程技术网

Javascript for循环中的jQuery.animate()

Javascript for循环中的jQuery.animate(),javascript,jquery,for-loop,jquery-animate,Javascript,Jquery,For Loop,Jquery Animate,我有以下代码: $("." + selectedOption + ":eq(0)").show().animate({ left: 0 + $(".option1:visible").outerWidth(), opacity: 1 }, 700, function() { $("." + selectedOption + ":eq(0)").animate({ top: 0 }, 700); }); 这正是我想要的。。。但是我想多次重复这个动画

我有以下代码:

$("." + selectedOption + ":eq(0)").show().animate({
    left: 0 + $(".option1:visible").outerWidth(),
    opacity: 1
}, 700, function() {
    $("." + selectedOption + ":eq(0)").animate({
        top: 0
    }, 700);
});
这正是我想要的。。。但是我想多次重复这个动画,每次都要为下一个“selectedOption”设置动画,即:eq(1),:eq(2),:eq(3)。因此,我认为将上述代码放在for循环中是可行的:

for(i = 0; i < 5; i++) {
    //code here
}
(i=0;i<5;i++)的
{
//代码在这里
}
当我这么做的时候,它不起作用。你知道为什么吗


感谢您使用foor循环,而不是foor循环,您需要更改:eq()


或者简单地将类添加到需要设置动画的项目中,并在完成后将其删除

您需要一个递归函数。大概是这样的:

var count = 0;
function animateNextOption() {
  $("." + selectedOption + ":eq(" + count++ + ")").show().animate({
    left: 0 + $(".option1:visible").outerWidth(),
    opacity: 1
  }, 700, animateNextOption);
}
animateNextOption();
尝试使用
.queue()
.promise()

var selectedOption=“selectedOption”;
$({}).queue(“\u fx“,$.map($(“+”selectedOption)),函数(el){
返回函数(下一步){
返回$(el)。设置动画({
不透明度:1
},700,函数(){
$(此)。设置动画({
排名:0
}, 700)
}).promise()然后(下一个)
}
})).dequeue(“\u fx”)
。选择选项{
位置:相对位置;
不透明度:0;
顶部:50px;
}

1.
2.
3