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>

  

相关文章
|
7月前
|
JavaScript 算法
原生JS完成“一对一、一对多”矩形DIV碰撞检测、碰撞检查,通过计算接触面积(重叠覆盖面积)大小来判断接触对象DOM
原生JS完成“一对一、一对多”矩形DIV碰撞检测、碰撞检查,通过计算接触面积(重叠覆盖面积)大小来判断接触对象DOM
|
7月前
|
前端开发 计算机视觉 Python
OpenCV中绘制运动的小球动画,
要在OpenCV中绘制运动的小球动画,并且将动画显示在Python GUI窗口内,可以按照以下步骤进行:
113 2
cesium中绘制立方体、设置材质、操作相机及获取鼠标经纬度和高度的方法
cesium中绘制立方体、设置材质、操作相机及获取鼠标经纬度和高度的方法
259 0
|
移动开发 小程序 前端开发
h5,小程序飞入购物车(抛物线绘制运动轨迹点)
小程序飞入购物车,一次性解决!
h5,小程序飞入购物车(抛物线绘制运动轨迹点)
|
JavaScript 前端开发 Java
使用JavaScript实现小球自由落体运动
使用JavaScript实现小球自由落体运动
133 0
|
前端开发 JavaScript
【Three.js入门】渲染第一个场景及物体(轨道控制器、坐标轴辅助器、移动缩放旋转)
【Three.js入门】渲染第一个场景及物体(轨道控制器、坐标轴辅助器、移动缩放旋转)
297 0
|
图形学
unity基础-坦克炮管旋转发射炮弹(向量基础,射线碰撞,物体实例化)
unity基础-坦克炮管旋转发射炮弹(向量基础,射线碰撞,物体实例化)
413 0
|
JavaScript
js基础笔记学习281蛇和食物的碰撞检测1
js基础笔记学习281蛇和食物的碰撞检测1
69 0
js基础笔记学习281蛇和食物的碰撞检测1
|
JavaScript
js基础笔记学习282蛇和食物的碰撞检测2
js基础笔记学习282蛇和食物的碰撞检测2
42 0
js基础笔记学习282蛇和食物的碰撞检测2
|
人机交互 Python
CV4 基于鼠标回调函数及轨迹调色的简单人机交互应用
创建鼠标回调函数具有特定的格式,该格式在所有地方都相同。它仅在功能上有所不同。
134 0