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 回答
- 0 關(guān)注
- 458 瀏覽
添加回答
舉報
0/150
提交
取消