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

请问为何不报错也实现不了动画

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<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: 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,cb){
     		setTimeout(function(){
     			var marginLeft = parseInt(ball.style.marginLeft);
     			if (marginLeft === distance){
     				cb && cb();
     			}else{
     				if(marginLeft < distance){
     					marginLeft++;
     				}else{
     					marginLeft--;
     				}
     				ball.style.marginLeft = marginLeft;
     				animate(ball,distance,cb);
     			}
     		},13);
     	}
        animate(ball1,100,function(){
        	console.log(marginLeft);
        	animate(ball2,200,function(){
        		animate(ball3,300,function(){
        			animate(ball3,150,function(){
        				animate(ball2,150,function(){
        					animate(ball1,150,function(){

        					});
        				});
        			});
        		});
        	});
        });

     </script>

</body>
</html>


正在回答

3 回答

// 获取每个小球距离左侧的距离,px单位被parseInt()方法给去掉了,因此在下一步的时候需要加回去
var marginLeft = parseInt(ball.style.marginLeft, 10)


0 回复 有任何疑惑可以回复我~
ball.style.marginLeft = marginLeft + "px"

原来这么写就可以了,谢谢你,因为

parseInt函数去掉单位了,这样小球就动起来了

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

不好意思  找到答案了 ball.style.marginLeft = marginLeft;后面加"px"就可以了

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

好难受啊

撒意思
2018-08-03 回复 有任何疑惑可以回复我~
#2

慕码人4451341

为什么
2018-09-03 回复 有任何疑惑可以回复我~

举报

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

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

进入课程

请问为何不报错也实现不了动画

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