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

为什么小球第二步回不去?代码感觉一样的呀~

<!DOCTYPE html>

<html>

<head>

<title>Promise animation</title>

<style type="text/css">

.ball{

width:40px;

height: 40px;

border-radius: 20px;

}

.ball1{

background: red;

}

.ball2{

background: yellow;

}

.ball3{

background: green;

}

</style>

</head>

<body>

    <div class="ball ball1" style="margin-left: 0px;"></div>

<div class="ball ball2" style="margin-left: 0px;"></div>

<div class="ball ball3" style="margin-left: 0px;"></div>


<script type="text/javascript">

var ball1=document.querySelector('.ball1');

var ball2=document.querySelector('.ball2');

var ball3=document.querySelector('.ball3');


            function animation(ball,distance,cb){

                setTimeout(function(){

                    var marginLeft=parseInt(ball.style.marginLeft,10);

                    if(marginLeft===distance){

                        cb&&cb()

                    }else {

                        if(marginLeft<distance){

                            marginLeft++;

                        }else{

                            marginLeft--;

                        }

                    }

                    ball.style.marginLeft=marginLeft +'px';

                    animation(ball,distance,cb);

                },13)

            }


            animation(ball1,100,function(){

                animation(ball2,200,function(){

                    animation(ball3,300,function(){

                        animation(ball3,150,function(){

                            animation(ball2,150,function(){

                                animation(ball1,150,function(){

                                    //

                                })

                            })

                        })

                    })

                })

            })

</script>

        

</body>

</html>


正在回答

1 回答

看到其他同学的问答,发现问题了,需要在回归cb&&cb();之后添加renturn false;即可恢复正常,小球的运行速度和第二次回复速度都正常了。停止循环即可正常。

1 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
进击Node.js基础(二)
  • 参与学习       76755    人
  • 解答问题       226    个

本教程带你攻破 Nodejs,让 JavaScript流畅运行在服务器端

进入课程

为什么小球第二步回不去?代码感觉一样的呀~

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信