運行執行不了
<!doctype html>
<html>
<head>
<style type="text/css">
?? ?.ball{ width: 40px; height: 40px; border-radius: 50%;}
?? ?.ball1 { background: red; }
?? ?.ball2 { background: yellow; }
?? ?.ball3 { background: green; }
</style>
<meta charset="utf-8">
<title>Promise animation</title>
</head>
<body>
?? ?<div class="ball ball1" style="margin-left: 0;"></div>
?? ?<div class="ball ball2" style="margin-left: 0;"></div>
?? ?<div class="ball ball3" style="margin-left: 0;"></div>
?? ?
??? <script type="text/javascript">
?? ??? ?var ball1=document.querySelector('.ball1');
?? ??? ?var ball2=document.querySelector('.ball2');
?? ??? ?var ball3=document.querySelector('.ball3');
?? ??? ?
?? ??? ?function animate(ball, distance, callback){
?? ??? ??? ?//distance:傳入數據,期望球所運動到的那個點
?? ??? ??? ?setTimeout(function(){
?? ??? ??? ??? ?var marginLeft=parseInt(ball.style.marginLeft,10);
?? ??? ??? ??? ??? ?
?? ??? ??? ??? ?if(marginLeft==distance){
?? ??? ??? ??? ??? ?callback&callback();?? ?
?? ??? ??? ??? ?}else {
?? ??? ??? ??? ??? ?? if(marginLeft < distance){
?? ??? ??? ??? ??? ??? ?? marginLeft++;
?? ??? ??? ??? ??? ?? }else{
?? ??? ??? ??? ??? ??? ?? marginLeft--;
?? ??? ??? ??? ??? ?? }
?? ??? ??? ??? ??? ?? ball.style.marginLeft=marginLeft;
?? ??? ??? ??? ??? ?? animate(ball, distance, callback);
?? ??? ??? ??? ?}
?? ??? ??? ?}, 13);?? ?//jq中設定的動畫毫秒數
?? ??? ?}
?? ??? ?
?? ??? ?animate(ball1, 100, function(){
?? ??? ??? ?animate(ball2, 200, function(){
?? ??? ??? ??? ?animate(ball3, 300, function(){
?? ??? ??? ??? ??? ?animate(ball3, 150, function(){
?? ??? ??? ??? ??? ??? ?animate(ball2, 150, function(){
?? ??? ??? ??? ??? ??? ??? ?animate(ball1, 150, function(){
?? ??? ??? ??? ??? ??? ??? ??? ?
?? ??? ??? ??? ??? ??? ??? ?});
?? ??? ??? ??? ??? ??? ?});
?? ??? ??? ??? ??? ?});
?? ??? ??? ??? ?});
?? ??? ??? ?});
?? ??? ?});
?? ?</script>
</body>
</html>
2016-11-24
47行 ball.style.marginLeft = marginLeft + "px";
2016-11-23
謝謝,我找到了,還有一個是marginLeft后加'px'
2016-11-23
?callback&callback(); ? ? 這里 少了一個&? 應該是 callback && callback();?