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>

  

相关文章
|
5月前
|
计算机视觉
基于鼠标事件与键盘控制的针对鼠标运动轨迹的
该文章介绍了一个基于鼠标事件和键盘控制的图像ROI截取工具的实现,包括使用OpenCV库监听鼠标事件、记录鼠标拖拽轨迹、绘制多边形ROI以及应用掩模提取感兴趣区域的代码示例和运行效果展示。
|
8月前
|
前端开发 计算机视觉 Python
OpenCV中绘制运动的小球动画,
要在OpenCV中绘制运动的小球动画,并且将动画显示在Python GUI窗口内,可以按照以下步骤进行:
119 2
|
计算机视觉 Python
OpenCV中绘制文字和运动的小球动画
要在OpenCV中绘制文字和运动的小球动画,可以使用以下方法: 1. 导入所需库:
148 8
Three.js模拟沿着路径进行运动,模拟飞机飞行,并保持运动方向
Three.js模拟沿着路径进行运动,模拟飞机飞行,并保持运动方向
1215 0
|
C# 图形学
控制物体的运动相关脚本
控制物体的运动相关脚本
|
Python
79 python - 打飞机案例(敌机发射子弹)
79 python - 打飞机案例(敌机发射子弹)
56 0
|
移动开发 小程序 前端开发
h5,小程序飞入购物车(抛物线绘制运动轨迹点)
小程序飞入购物车,一次性解决!
h5,小程序飞入购物车(抛物线绘制运动轨迹点)
|
JavaScript 前端开发 Java
使用JavaScript实现小球自由落体运动
使用JavaScript实现小球自由落体运动
142 0
|
图形学
unity基础-坦克炮管旋转发射炮弹(向量基础,射线碰撞,物体实例化)
unity基础-坦克炮管旋转发射炮弹(向量基础,射线碰撞,物体实例化)
429 0
|
人机交互 Python
CV4 基于鼠标回调函数及轨迹调色的简单人机交互应用
创建鼠标回调函数具有特定的格式,该格式在所有地方都相同。它仅在功能上有所不同。
140 0