我用 jquery 制作了一个 div 动画。
循环是这样的:向右,然后向下,向左,再向下。
当按下开始按钮时,第一个 div 开始动画循环。下一个 div 以随机间隔附加,下一个 div 相同,等等。但是当附加第二个 div 时,整个动画循环会变得疯狂。
我想要完成的事情:如果附加了第二个 div,第一个应该只是完成它的动画循环。第二个和之后的那些也完成了他们的循环。
你能帮我解决这个问题吗?我应该为课程添加计数器还是什么?
(顺便说一下我在这个jsfiddle中禁用了随机附加代码,所以你可以先看到正确的动画循环。请启用以查看疯狂效果)
HTML
<div id="arena">
<div id="start">start</div>
</div>
jQuery
var counter = 0;
$("#start").on('click', function () {
$("#arena").append('<div class="b"></div>');
bbLoop();
$("#start").hide();
});
function bbLoop() {
bbRight();
}
function bbLeft() {
$(".b").animate({
left: "-=300"
}, 1500, "swing", bbLeftDown);
}
function bbRight() {
$(".b").animate({
left: "+=300"
}, 1500, "swing", bbRightDown);
}
function bbLeftDown() {
$(".b").animate({
bottom: "-=30"
}, 300, "swing", bbRight);
}
function bbRightDown() {
$(".b").animate({
bottom: "-=30"
}, 300, "swing", bbLeft);
}
/*
function doSomething() {}
(function loop() {
var rand = Math.round(Math.random() * (3000 - 500)) + 500;
setTimeout(function () {
doSomething();
$("#arena").append('<div class="b"></div>');
loop();
}, rand);
}());
*/