js匀速运动

 <style>
    * {
      padding: 0;
      margin: 0;
    }

    #box {
      width: 100px;
      height: 100px;
      background: skyblue;
      /* position: fixed; */
      position: relative;
      left: 50px;
      top: 50px;
    }


    #box1 {
      width: 100px;
      height: 100px;
      background: greenyellow;
      position: fixed;
      /* left: 50px;
      top: 150px; */
      left: 1000px;
      top: 150px;
    }
  </style>
<body>
  <div id="box"></div>
  <div id="box1"></div>
</body>
<script>

  window.onload = function () {
    var oBox = document.querySelector('#box');
    var oBox1 = document.querySelector('#box1');
    animate(1000, 500, oBox);
    animate(50, 800, oBox1);

    function animate(direction, time, ele) {
      // var direction = 1000;
      // var time = 500;
      var current = ele.offsetLeft;       // 获取元素当前的位置
      var gap = direction - current;      // 计算运动距离

      var speed = gap / time;             // 求运动的速度

      var timer = setInterval(function () {
        var left = ele.offsetLeft;
        // speed++
        left += speed;

        if (left * gap >= direction * gap) {  // 判断到达条件
          clearInterval(timer);
          left = direction;
        }

        ele.style.left = left + 'px';

      }, 1)
    }
  }
</script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值