为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

犯罪嫌疑人X 2019-04-04 06:02:17
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
提交
取消
意见反馈 帮助中心 APP下载
官方微信