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>

  

相关文章
|
4月前
|
JavaScript 算法
原生JS完成“一对一、一对多”矩形DIV碰撞检测、碰撞检查,通过计算接触面积(重叠覆盖面积)大小来判断接触对象DOM
原生JS完成“一对一、一对多”矩形DIV碰撞检测、碰撞检查,通过计算接触面积(重叠覆盖面积)大小来判断接触对象DOM
|
3月前
|
测试技术
MimicBrush:奇迹画刷,重新定义局部重绘
图像编辑是一项实用而又具有挑战性的任务,因为用户的需求多种多样,其中最困难的部分之一是准确描述编辑后的图像应该是什么样子。在MimicBrush这项工作中,提出了一种新的编辑形式,称为模仿编辑,以帮助用户更方便地发挥创造力。
|
4月前
|
JavaScript Serverless
Vue 封装一个函数,小球原始高度不固定,弹起比例不固定、计算谈几次后,高度低于1米
Vue 封装一个函数,小球原始高度不固定,弹起比例不固定、计算谈几次后,高度低于1米
16 1
|
移动开发 小程序 前端开发
h5,小程序飞入购物车(抛物线绘制运动轨迹点)
小程序飞入购物车,一次性解决!
h5,小程序飞入购物车(抛物线绘制运动轨迹点)
|
JavaScript 前端开发 Java
使用JavaScript实现小球自由落体运动
使用JavaScript实现小球自由落体运动
116 0
|
前端开发 JavaScript
【Three.js入门】渲染第一个场景及物体(轨道控制器、坐标轴辅助器、移动缩放旋转)
【Three.js入门】渲染第一个场景及物体(轨道控制器、坐标轴辅助器、移动缩放旋转)
272 0
【unity2D横板】【sunnyland】敌人巡逻追击主角以及返回原点
【unity2D横板】【sunnyland】敌人巡逻追击主角以及返回原点
|
图形学
碰撞检测——刚体
碰撞检测——刚体
126 0
碰撞检测——刚体
|
JavaScript 前端开发 开发者
动画-钩子函数实现小球半场动画|学习笔记
快速学习动画-钩子函数实现小球半场动画
126 0
动画-钩子函数实现小球半场动画|学习笔记
自由运动滑块和小球的碰撞检测
自由运动滑块和小球的碰撞检测
111 0
自由运动滑块和小球的碰撞检测