关于else if 的疑问
我用传统 js 方法编写小球动画时发现三个球球速一个比一个快,而且不能回滚,第三个球一直在原位震动,后来发现是因为我把代码里的 else { if... else...}当成了 else if.. else...,但我不知道这二者有什么区别,为什么最后动画结果不一样?
错误代码:
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) }
正确代码:
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) }
求解答