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=500if(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);}}这样的话怎么套呢,我这个代码,最终会跑到目的地柱子上,但是是同时跑的,怎么样让其又先后顺序呢?
1 回答
- 1 回答
- 0 关注
- 426 浏览
添加回答
举报
0/150
提交
取消