jQuery animate() 在 setTimeout() 循环后失败
jQuery animate() fail after setTimeout() loop
我正在编写这段代码(我简单地对其进行了简化)
function flip(i) {
setTimeout(function() {
$("#block-"+i).css("transform","rotateY(10deg)");
}, i*200);
}
$("#flip").click(function() {
for (i=1;i<=6;i++) {
flip(i);
$("#block-"+i).delay(i*200+1400).animate({left:100},500);
}
$("#text-1").delay(3000).animate({top:200},4000,"swing",function(){
$("#block-1").animate({top:500},1000);
});
});
我知道在循环中使用 setTimeout() 存在一些问题,但问题在线
$("#block-1").animate({top:500},1000);
它没有动画..
当我尝试从回调中取出它时,像这样
function flip(i) {
setTimeout(function() {
$("#block-"+i).css("transform","rotateY(10deg)");
}, i*200);
}
$("#flip").click(function() {
for (i=1;i<=6;i++) {
flip(i);
$("#block-"+i).delay(i*200+1400).animate({left:100},500);
}
$("#text-1").delay(3000).animate({top:200},4000);
$("#block-1").delay(7000).animate({top:500},1000);
});
我又不能工作了,但我必须添加延迟()
实际代码包含一些排队的动画元素,所以我必须计算每个延迟,这很烦人..
有什么解决办法吗?
啊啊啊。算了吧..我重写了代码,解决了问题,但仍然不知道之前出了什么问题..
实际上新代码还有另一个问题..但那是另一个话题..
我正在编写这段代码(我简单地对其进行了简化)
function flip(i) {
setTimeout(function() {
$("#block-"+i).css("transform","rotateY(10deg)");
}, i*200);
}
$("#flip").click(function() {
for (i=1;i<=6;i++) {
flip(i);
$("#block-"+i).delay(i*200+1400).animate({left:100},500);
}
$("#text-1").delay(3000).animate({top:200},4000,"swing",function(){
$("#block-1").animate({top:500},1000);
});
});
我知道在循环中使用 setTimeout() 存在一些问题,但问题在线
$("#block-1").animate({top:500},1000);
它没有动画.. 当我尝试从回调中取出它时,像这样
function flip(i) {
setTimeout(function() {
$("#block-"+i).css("transform","rotateY(10deg)");
}, i*200);
}
$("#flip").click(function() {
for (i=1;i<=6;i++) {
flip(i);
$("#block-"+i).delay(i*200+1400).animate({left:100},500);
}
$("#text-1").delay(3000).animate({top:200},4000);
$("#block-1").delay(7000).animate({top:500},1000);
});
我又不能工作了,但我必须添加延迟() 实际代码包含一些排队的动画元素,所以我必须计算每个延迟,这很烦人.. 有什么解决办法吗?
啊啊啊。算了吧..我重写了代码,解决了问题,但仍然不知道之前出了什么问题.. 实际上新代码还有另一个问题..但那是另一个话题..