promise实例小球运动

简介: Document *{margin:0; padding:0;}.div1{width:50px; height:50px; background:red; border-radius:50%; margin-top:10px; margin-left:0;}.
<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
 <script src="http://apps.bdimg.com/libs/bluebird/1.2.2/bluebird.js"></script>
<style>
*{margin:0; padding:0;}
.div1{width:50px; height:50px; background:red; border-radius:50%; margin-top:10px; margin-left:0;}
.div2{width:50px; height:50px; background:yellow; border-radius:50%; margin-top:10px; margin-left:0;}
.div3{width:50px; height:50px; background:blue; border-radius:50%; margin-top:10px; margin-left:0;}
</style>
</head>

<body>
<div style="margin:20px; position:relative">
<div class="div1"></div>
<div class="div2"></div>
<div class="div3"></div>
</div>
<script>
window.onload = function(){
/*function move(obj, dis, cb){
  
   setTimeout(function(){
      var marginLeft = parseInt(obj.offsetLeft,10);
      if(marginLeft == dis) {
         cb && cb()
      } else {
         if(marginLeft < dis) {
           marginLeft++
         } else {
           marginLeft--
         }
         obj.style.marginLeft = marginLeft + 'px' 
         move(obj, dis, cb)
      }
    },10)
   
}
move(d1,150,function(){
  move(d2,150,function(){
    move(d3, 150, function(){
      move(d3,0, function() {
        move(d2,0,function(){
          move(d1,0)
        })
      })
    })
  })
})*/
var d1 = document.querySelector('.div1')
var d2 = document.querySelector('.div2')
var d3 = document.querySelector('.div3')
var Promise = window.Promise
function promiseMove(obj,dis) {
  return new Promise(function(resolve, reject) {
    function move(){
       setTimeout(function(){
          var marginLeft = parseInt(obj.offsetLeft,10);
          if(marginLeft == dis) {
             resolve()
          } else {
             if(marginLeft < dis) {
               marginLeft++
             } else {
               marginLeft--
             }
             obj.style.marginLeft = marginLeft + 'px' 
             move()
          }
          
        },10)
    }
    move()
  })
}
  promiseMove(d1,100)
  .then(function(){return promiseMove(d2,100) })
  .then(function(){return promiseMove(d3,100) })
  .then(function() {return promiseMove(d3,0)})
.then(function() {return promiseMove(d2,0)})
 .then(function() {return promiseMove(d1,0)})
}


</script>
</body>
</html>

  

相关文章
|
23天前
|
前端开发 图形学
Pixi绘制带箭头的线
这篇文章讲解了如何使用Pixi.js来绘制带有箭头的线条,并提供了绘制箭头的具体实现方法和技术细节。
22 4
Pixi绘制带箭头的线
|
6月前
|
前端开发 计算机视觉 Python
OpenCV中绘制运动的小球动画,
要在OpenCV中绘制运动的小球动画,并且将动画显示在Python GUI窗口内,可以按照以下步骤进行:
98 2
|
存储 前端开发
canvas自定义绘制顺序解决遮挡问题
canvas自定义绘制顺序解决遮挡问题
221 0
|
JavaScript 前端开发 算法
3D 碰撞检测
文介绍了用于在 3D 环境中实现碰撞检测的不同边界体积技术。
167 0
|
图形学
unity基础-坦克炮管旋转发射炮弹(向量基础,射线碰撞,物体实例化)
unity基础-坦克炮管旋转发射炮弹(向量基础,射线碰撞,物体实例化)
389 0
|
图形学
碰撞检测——刚体
碰撞检测——刚体
133 0
碰撞检测——刚体
自由运动滑块和小球的碰撞检测
自由运动滑块和小球的碰撞检测
119 0
自由运动滑块和小球的碰撞检测
|
图形学 C++
碰撞检测——碰撞检测函数
碰撞检测——碰撞检测函数
151 0
|
图形学
碰撞检测——刚体加力
碰撞检测——刚体加力
105 0
python库函数的使用 - 小球阻力落体运动
python库函数的使用 - 小球阻力落体运动