zoukankan      html  css  js  c++  java
  • promise实例小球运动

    <!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{50px; height:50px; background:red; border-radius:50%; margin-top:10px; margin-left:0;}
    .div2{50px; height:50px; background:yellow; border-radius:50%; margin-top:10px; margin-left:0;}
    .div3{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>
    

      

  • 相关阅读:
    算法2:邻居好说话:冒泡排序
    算法1:最快最简单的排序——桶排序
    冒泡排序
    Linux基本操作命令总结
    APP内嵌H5页面,H5页面向APP发送消息
    前端进行微信公众号账号绑定步骤
    history不刷新页面改变url
    在 Chrome DevTools 中调试 JavaScript 入门
    eslint 在webstorm配置
    electron 自定义菜单
  • 原文地址:https://www.cnblogs.com/txxt/p/6104716.html
Copyright © 2011-2022 走看看