用jquery模拟汉诺塔遇到难题,高手求救

jquery有一个这样的方法,animate({marginLeft:300,marginTop:400}, 3000);
这样写:$div1.animate({marginLeft:300,marginTop:400}, 3000);
$div2.animate({marginLeft:300,marginTop:400}, 3000);效果是div1和div2同时在跑,要使div2在div1跑完后再跑,我只能想到这样的办法,这样写:$div1.animate({marginLeft:300,marginTop:400}, 3000,function(){
$div2.animate({marginLeft:300,marginTop:400}, 3000);
});可是如果div很多时,这样就会无限的套下去,其实这也没什么,套就套吧,可是我们知道模拟汉诺塔是要用到递归的:function move(from,to,middle,divArr){//from,to,middle指距离左边的距离from=0;middle=250,to=500
if(divArr.length==1){
var $div=divArr[0];
$div.animate({marginLeft:leftArr[to],marginTop:(topArr[to]-20)}, 3000);
topArr[from]=topArr[from]+20;
topArr[to]=topArr[to]-20;

}else{//否则将上面的N-1个运用相同的方法
//分别取出上面的n-1个对象和下面的一个对象
var upArr=[];
var downArr=[];
for(var i=0;i<divArr.length;i++){
if(i==(divArr.length-1)){
downArr[0]=divArr[i];
}else{
upArr[i]=divArr[i];
}
}
move(from,middle,to,upArr);
window.setTimeout(function(){
move(from,to,middle,downArr);
}, 3000);
window.setTimeout(function(){
move(middle,to,from,upArr);
}, 6000);

}
}这样的话怎么套呢,我这个代码,最终会跑到目的地柱子上,但是是同时跑的,怎么样让其又先后顺序呢?

犯罪嫌疑人X
浏览 432回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JQuery