var ball1=document.querySelector('.ball1')
var ball2=document.querySelector('.ball2')
var ball3=document.querySelector('.ball3')
var Promise = window.Promise
function promiseAnimate(ball,distance){
return new Promise(function(resolve,reject){
function _animate() {
setTimeout(function () {
var marginLeft = parseInt(ball.style.marginLeft, 10)
if (marginLeft == distance) {
resolve()
} else {
if (marginLeft < distance) {
marginLeft++
} else {
marginLeft--
}
ball.style.marginLeft = marginLeft + 'px'
_animate()
}
}, 13)
}
_animate()
})
}
promiseAnimate(ball1,100)
.then(function(){
return promiseAnimate(ball2,200)
})
.then(function(){
return promiseAnimate(ball3,300)
})
.then(function(){
return promiseAnimate(ball3,150)
})
.then(function(){
return promiseAnimate(ball2,150)
})
.then(function(){
return promiseAnimate(ball1,150)
})
</script>